适配器模式

来源:互联网 发布:网络金融生态圈 编辑:程序博客网 时间:2024/06/08 05:05

适配器的目的和装饰有点类似,装饰对目标类的方法进行扩展,而适配器则是将不同的类进行转化,转化即引用不变但改变具体的实现,我们可以使用继承。


1、北京人的信息

public class BeiJingPerson {    public String getName() {        return "张三";    }    public String getSex(){        return "男";    }    public String getPhone(){        return "0105534232";    }}


2、上海人的信息

public class ShangHaiPerson {    public Map<String, String> getPerson() {        Map<String, String> map = new HashMap<>();        map.put("姓名", "Tonny");        map.put("性别", "男");        map.put("电话", "0003322002");        return map;    }}



3、某天这个上海人要来北京了,入乡随俗,按照北京人的方式表示信息

public class BeiJingPersonAdapter extends BeiJingPerson {    private ShangHaiPerson shangHaiPerson;    private Map<String, String> map;    public BeiJingPersonAdapter(ShangHaiPerson shangHaiPerson) {        this.shangHaiPerson = shangHaiPerson;        this.map = shangHaiPerson.getPerson();    }    @Override    public String getName() {        return map.get("姓名");    }    @Override    public String getSex() {        return map.get("性别");    }    @Override    public String getPhone() {        return map.get("电话");    }}


4、输出看看

public class Client {    public static void main(String[] args) {        BeiJingPerson person = new BeiJingPersonAdapter(new ShangHaiPerson());        System.out.println(person.getName());        System.out.println(person.getPhone());        System.out.println(person.getSex());    }}

Tonny
0003322002

原创粉丝点击