`
orangewhy
  • 浏览: 40863 次
  • 来自: ...
社区版块
存档分类
最新评论

举例说说Adapter模式

阅读更多

        假如你朋友送你一个新鼠标,是usb接口的,而你电脑的主板没有usb接口,只有ps2接口。但是你想用上新鼠标,怎么办呢。呵呵,大家都知道,买一根连接线,一端接受usb,令一端接收ps2,那就可以了。

      在这个例子中,连接线就起到了适配器的作用。再强调一点,虽然同时usb,但是也要分正负面的,ps2也是。

      那么现在假设鼠标Mouse是带 UsbA 接口的(UsbA与UsbB相接)。主板Mainboard是Ps2B接口的(Ps2B与Ps2A相接)。现在买来了UsbPs2连接线 UsbPs2Adapter。现在来实现一下。

UsbA 接口描述:

  1. public interface UsbA   
  2. {   
  3.     public void join(UsbB usbB);   
  4. }   

 

UsbB 接口描述:

  1. public interface UsbB   
  2. {   
  3.     public void access(UsbA usbA);   
  4. }  

Ps2A接口描述:

  1. public interface Ps2A   
  2. {   
  3.     public void join(Ps2B ps2B);   
  4. }  

Ps2B接口描述:

  1. public interface Ps2B   
  2. {   
  3.     public void access(Ps2A ps2A);   
  4. }   

鼠标Mouse描述:

  1. public class Mouse implements UsbA   
  2. {   
  3.        
  4.     public Mouse(){   
  5.         System.out.println("mouse with UsbA.");   
  6.     }   
  7.   
  8.     public void join(UsbB usbB)   
  9.     {   
  10.         System.out.println("join to UsbB");   
  11.     }   
  12. }  

 

主板Mainboard描述:

  1. public class Mainboard implements Ps2B   
  2. {   
  3.     public Mainboard()   
  4.     {   
  5.         System.out.println("Mainboard with Ps2B.");   
  6.     }   
  7.   
  8.     public void access(Ps2A ps2A)   
  9.     {   
  10.         System.out.println("access Ps2A!");   
  11.     }   
  12.   
  13. }  

 

连接线UsbPs2Adapter描述:

  1. public class UsbPs2Adapter implements UsbB,Ps2A   
  2. {   
  3.        
  4.     public UsbPs2Adapter()   
  5.     {   
  6.         System.out.println("adapter with UsbA and Ps2B.");   
  7.     }   
  8.   
  9.     public void access(UsbA usbA)   
  10.     {   
  11.         System.out.println("adapter access UsbA.");   
  12.     }   
  13.   
  14.     public void join(Ps2B ps2B)   
  15.     {   
  16.         System.out.println("adapter join Ps2B.");   
  17.     }   
  18.   
  19. }   


好,材料都准备好了,现在开始接线吧:

  1. public class AdapterTest   
  2. {   
  3.     public static void main(String[] args)   
  4.     {   
  5.         Mainboard mainbord = new Mainboard();//带有Ps2B接口   
  6.         Mouse mouse = new Mouse();//带有usbA接口   
  7.         UsbPs2Adapter adapter = new UsbPs2Adapter();//同时带有usbB和ps2A接口   
  8.         adapter.access(mouse);//接收鼠标的连接   
  9.         adapter.join(mainbord);//连接到主板   
  10.     }   
  11. }  

 

输出结果:

Mainboard with Ps2B.
mouse with UsbA.
adapter with UsbA and Ps2B.
adapter access UsbA.
adapter join Ps2B.

连接成功了!!呵呵

分享到:
评论
2 楼 xst1522 2007-03-16  
很清楚!
牛人!
1 楼 lei_1021 2007-03-13  
好牛

相关推荐

Global site tag (gtag.js) - Google Analytics