首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

举例来说说说Adapter模式

2012-11-16 
举例说说Adapter模式?? 假如你朋友送你一个新鼠标,是usb接口的,而你电脑的主板没有usb接口,只有ps2接口。但

举例说说Adapter模式

?? 假如你朋友送你一个新鼠标,是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.

连接成功了!!呵呵

?

热点排行