适配器模式总结

来源:互联网 发布:ubuntu 设置开机脚本 编辑:程序博客网 时间:2024/05/16 14:04

适配器模式核心思想:将A接口的对象转化成B接口的对象,使之从外观上看似是B对象,但是确实A对象在执行实际的业务逻辑。

看到适配器模式的第一感觉就是:这也算个模式?就应该这样处理啊!!!生活中有很多鲜活的例子,如网络适配器(网卡),调制解调器,数据线,充电器等等。其缺点就是,需要有这么一个额外的东西才能进行转换。

适配器模式的好处:实现了良好的可扩展性和类复用性。

下面给出一个简单的实例,将PS/2的键盘转接成USB接口。

package adapterpattern;/** * PS键盘接口 */public interface PS2 {String A();String B();String C();}


package adapterpattern;/** * USB键盘接口 */public interface USB {String A();String B();String C();}

package adapterpattern;/** * PS2键盘 */public class PS2Keyboard implements PS2{@Overridepublic String A() {return "PS@A";}@Overridepublic String B() {return "PS@B";}@Overridepublic String C() {return "PS@C";}}

package adapterpattern;/** * PS2转USB转换器 */public class Adapter implements USB{private PS2Keyboard keyboard;public Adapter(PS2Keyboard keyboard){this.keyboard = keyboard;}@Overridepublic String A() {return keyboard.A();}@Overridepublic String B() {return keyboard.B();}@Overridepublic String C() {return keyboard.C();}}

package adapterpattern;public class Test {public static void main(String[] args) {USB usbKeyboard = new Adapter(new PS2Keyboard());System.out.println(usbKeyboard.A());System.out.println(usbKeyboard.B());System.out.println(usbKeyboard.C());}}


测试结果

PS@APS@BPS@C


0 0
原创粉丝点击