适配器模式是把一个接口转换成客户端期待的另外一种接口,从而使本来由于接口不匹配而不能一块儿工做的类可以一块儿工做。java
适配器模式有两种实现,一种是经过继承实现(即:类适配器模式),另外一种是经过组合实现(即:对象适配器模式)ide
两种模式的区别:this
类适配器模式:是经过继承目标类,从而实如今适配器中对目标类方法的调用的spa
对象适配器模式:是经过将目标类声明为一个适配器的私有变量,从而实如今适配器中对目标类方法的调用的code
package com.hs.pattern.adapter; public interface Ps2 { public void ps2Input(); }
package com.hs.pattern.adapter; public class Usb { public void usbInput(){ System.out.println("this is usb"); } }
package com.hs.pattern.adapter; /** * 类适配器 * @author Administrator * */ public class UsbAdapter1 extends Usb implements Ps2 { @Override public void ps2Input() { usbInput(); } }
package com.hs.pattern.adapter; public class Client { public static void main(String[] args) { Ps2 ps2 = new UsbAdapter1(); ps2.ps2Input(); } }
package com.hs.pattern.adapter; /** * 对象适配器 * @author Administrator * */ public class UsbAdapter2 implements Ps2 { private Usb usb; public UsbAdapter2( Usb usb ){ this.usb = usb; } @Override public void ps2Input() { usb.usbInput(); } }
package com.hs.pattern.adapter; public class Client { public static void main(String[] args) { Usb usb = new Usb(); Ps2 ps2 = new UsbAdapter2(usb); ps2.ps2Input(); } }