举例说说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.

连接成功了!!呵呵

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值