?? 假如你朋友送你一个新鼠标,是usb接口的,而你电脑的主板没有usb接口,只有ps2接口。但是你想用上新鼠标,怎么办呢。呵呵,大家都知道,买一根连接线,一端接受usb,令一端接收ps2,那就可以了。
????? 在这个例子中,连接线就起到了适配器的作用。再强调一点,虽然同时usb,但是也要分正负面的,ps2也是。
????? 那么现在假设鼠标Mouse是带 UsbA 接口的(UsbA与UsbB相接)。主板Mainboard是Ps2B接口的(Ps2B与Ps2A相接)。现在买来了UsbPs2连接线 UsbPs2Adapter。现在来实现一下。
UsbA 接口描述:
public interface UsbA { public void join(UsbB usbB); }
?
UsbB 接口描述:
public interface UsbB { public void access(UsbA usbA); }
?
Ps2A接口描述:
public interface Ps2A { public void join(Ps2B ps2B); }
?
Ps2B接口描述:
public interface Ps2B { public void access(Ps2A ps2A); }
?
鼠标Mouse描述:
public class Mouse implements UsbA { public Mouse(){ System.out.println("mouse with UsbA."); } public void join(UsbB usbB) { System.out.println("join to UsbB"); } }
?
主板Mainboard描述:
public class Mainboard implements Ps2B { public Mainboard() { System.out.println("Mainboard with Ps2B."); } public void access(Ps2A ps2A) { System.out.println("access Ps2A!"); } }
?连接线UsbPs2Adapter描述:
public class UsbPs2Adapter implements UsbB,Ps2A { public UsbPs2Adapter() { System.out.println("adapter with UsbA and Ps2B."); } public void access(UsbA usbA) { System.out.println("adapter access UsbA."); } public void join(Ps2B ps2B) { System.out.println("adapter join Ps2B."); } }
?好,材料都准备好了,现在开始接线吧:
public class AdapterTest { public static void main(String[] args) { Mainboard mainbord = new Mainboard();//带有Ps2B接口 Mouse mouse = new Mouse();//带有usbA接口 UsbPs2Adapter adapter = new UsbPs2Adapter();//同时带有usbB和ps2A接口 adapter.access(mouse);//接收鼠标的连接 adapter.join(mainbord);//连接到主板 } }
?
输出结果:
Mainboard with Ps2B.
mouse with UsbA.
adapter with UsbA and Ps2B.
adapter access UsbA.
adapter join Ps2B.
连接成功了!!呵呵
?