两种适配器模式
来源:互联网 发布:网络打印机通讯协议 编辑:程序博客网 时间:2024/05/19 03:18
面向对象的23种设计模式点这里。说到适配器,我想我们接触最多的叫电源适配器。没错,所有的手机充电器都是电源适配器。从交流变直流,从220v到5v。而适配器模式分为两种,一种是类适配器,一种是对象适配器。下面先写类适配器:
public class Adapter { static class HomePower { public String homeRequest() { return "220V交流电"; } } // 目标接口,或称为标准接口 interface PhonePower { public String request(); } // 具体目标类,只提供普通功能 static class AndroidPower implements PhonePower { public String request() { return "5v直流电"; } } //充电使用标准接口 static class Android { public void charge(PhonePower power) { System.out.println(power.request() + "充电"); } } // 适配器类,继承了被适配类,同时实现标准接口 static class PowerAdapter extends HomePower implements PhonePower { public String request() { return super.homeRequest(); } } // 测试类public class Client { public static void main(String[] args) { new Android().charge(new AndroidPower()); //有了电源适配器安卓就可以使用220v充电 new Android().charge(new PowerAdapter()); }}输出:5v直流电充电220V交流电充电
下面是对象适配器模式:
public class Adapter { static class HomePower { public String homeRequest() { return "220V交流电"; } } // 只有具体目标类,目标接口是因为java不支持多继承 static class AndroidPower { public String request() { return "5v直流电"; } } //充电使用标Android接口 static class Android { public void charge(AndroidPower power) { System.out.println(power.request() + "充电"); } } // 适配器类,这里直接继承普通接口,不用实现目标接口, static class PowerAdapter extends AndroidPower { private HomePower homePower; PowerAdapter(HomePower homePower){ this.homePower = homePower; } public String request() { return this.homePower.homeRequest(); } } // 测试类public class Client { public static void main(String[] args) { new Android().charge(new AndroidPower()); //有了电源适配器安卓就可以使用220v充电 new Android().charge(new PowerAdapter(new HomePower()));//使用匿名内部类来继承 // new Android().charge(new AndroidPower(){// @Override// public String request() {// return new HomePower().homeRequest();// }// }); }}输出:同上
最后说一下,就像真实中一样,适配器一般解决历史遗留问题。所以适配器模式在软件设计阶段是不能出现的。个人推荐使用对象适配模式,其中也可以像注释的那样使用匿名内部类。
阅读全文
1 0
- 两种适配器模式
- 适配器模式 C++的两种实现
- 两种适配器模式(Adapter Pattern)
- springmvc处理器适配器两种
- 适配器及适配器模式
- 适配器及适配器模式
- 适配器模式(类适配器)
- 适配器模式(默认适配器)
- 适配器模式(对象适配器)
- 适配器模式-类适配器
- 适配器模式-对象适配器
- java_23种设计模式之适配器模式
- 23种设计模式之适配器模式
- 23种设计模式--适配器模式
- 24种设计模式之---(适配器模式)
- 23种设计模式05---适配器模式
- 23种设计模式之适配器模式
- 23种设计模式(6)-适配器模式
- hdu6171 Admiral 双向宽搜
- centos7 下时间同步问题
- Erlang 简易安装和卸载
- 数字组合(背包计数)
- 7-8 字符串转换成十进制整数
- 两种适配器模式
- ubuntu下安装nginx时依赖库zlib,pcre,openssl安装方法
- 朝花夕拾,亦不算晚
- zabbix监控mysql最简单的方法
- 马尔可夫链的演示Python
- Python中与字符编码方式有关的一个错误
- Spring Boot : 配置JSP(六)
- Mongodb命令行导入导出文档
- 开发小技巧之进入Activity之后获取控件高度