适配器模式核心思想:将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{ @Override public String A() { return "[email protected]"; } @Override public String B() { return "[email protected]"; } @Override public String C() { return "[email protected]"; } }
package adapterpattern; /** * PS2转USB转换器 */ public class Adapter implements USB{ private PS2Keyboard keyboard; public Adapter(PS2Keyboard keyboard) { this.keyboard = keyboard; } @Override public String A() { return keyboard.A(); } @Override public String B() { return keyboard.B(); } @Override public 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()); } }
測试结果
[email protected] [email protected] [email protected]
时间: 2024-10-11 11:18:29