假如你朋友送你一个新鼠标,是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.
连接成功了!!呵呵
分享到:
相关推荐
设计模式和举例代码 设计模式和举例代码 设计模式和举例代码
本资料主要详细介绍JAVA 中各设计模式及其举例说明其用法
设计模式举例 抽象工厂模式 代码+用例图 设计模式, 设计模式举例-抽象工厂模式(有图有真相)
stratey 模式举例 以武士,兵器等为列进行讲解stratey模式//武器类
对设计模式进行概括,通过一个示例详细讲解抽象工厂模式。
五、 对象的Adapter模式示意性实现: 84 六、 在什么情况下使用适配器模式 85 七、 一个实际应用Adapter模式的例子 85 八、 关于Adapter模式的讨论 87 C#设计模式(11)-Composite Pattern 88 一、 合成(Composite...
对于23种设计模式进行了详细的举例说明,没有任何代码,例子深入浅出,非常到位,对与想了解设计模式的同学,非常有帮助
五、 对象的Adapter模式示意性实现: 六、 在什么情况下使用适配器模式 七、 一个实际应用Adapter模式的例子 八、 关于Adapter模式的讨论 C#设计模式(11)-Composite Pattern 一、 合成(Composite)模式 二...
本文详细描述了华为防火墙路由模式下配置虚拟防火墙的用途和配置命令及命令的用途
对23中设计模式进行了详细的举例介绍。欢迎你的加入Java设计模式学习。 作者介绍: Rohit Joshi works as a Software Engineer in the Consumer Product Sector. He is a Sun Certified Java Programmer. He had ...
24中设计模式 混合设计模式 设计模式实际应用案例 费了很多时间和精力整理的
实验7 适配器模式、外观模式与模板方法模式---Java设计模式
测试代码举例测试代码举例测试代码举例测试代码举例测试代码举例测试代码举例
设计模式-克隆模式(讲解及其实现代码)
防火墙透明模式的设置、配置举例,例如H3C的百M墙。
本代码有利于java初学者理解单例模式很好地例子。我初学时这个例子帮老大忙了,贡献给大家
c++ 设计模式讲解及实际举例说明,通过实际举例更好的理解和记忆设计模式。
C语言:原型模式及举例
初学设计模式让他家分享一下!刚开始自己做到时候也是一头雾水,希望可以帮助刚学习的同学们解除一些烦恼!
每一个设计模式的举例及UML图! 值不值得就看各位对HF这本书的认同了,, 里面我使用visual paradigm site 3.4版 进行举例化的 UML图和JAVA源代码实现 而且有专有QQ群去讨论。 VP画的UML图是非常的漂亮,VP也是...