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

举例说说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  
好牛

相关推荐

    概括设计模式,举例详解抽象工厂模式

    ##### 适配器模式(Adapter) 适配器模式允许不兼容的接口之间进行协作,通过将一个类的接口转换为客户期望的另一个接口,使得原本因接口不兼容而无法一起工作的类能够协同工作。 ##### 桥接模式(Bridge) 桥接...

    模式举例代码——设计模式和举例代码

    设计模式是软件工程中的一种最佳实践,它是在特定上下文中解决常见问题的模板,可以被重复使用,以提高代码的可读性、可维护性和可扩展性。在面向对象编程中,设计模式尤其重要,它们代表了在软件设计中经过时间验证...

    常见设计模式举例说明

    常见设计模式举例说明 设计模式是软件开发中的一种解决方案,它可以帮助开发者更好地解决软件设计中的问题。这里,我们将对 9 种常见的设计模式进行详细的解释和举例说明。 创建型模式 创建型模式是将对象的创建...

    JAVA 各设计模式的介绍及其举例说明

    本资料主要详细介绍JAVA 中各设计模式及其举例说明其用法

    24种设计模式以及混合设计模式

    其中包括代理模式(Proxy)、装饰器模式(Decorator)、适配器模式(Adapter)、桥接模式(Bridge)、组合模式(Composite)、外观模式(Facade)和享元模式(Flyweight)。这些模式帮助我们在不修改原有代码的情况...

    stratey 模式举例

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件开发中,我们经常遇到需要根据不同的条件或时间点执行不同策略的情况。策略模式允许我们将算法族封装到各自独立的类中,使得它们可以互换使用,...

    实验7 适配器模式、外观模式与模板方法模式

    **适配器模式(Adapter Pattern)** 是一种结构型设计模式,它允许不兼容的接口之间能够协同工作。适配器模式的主要作用是通过创建一个新的适配器类来包装现有类的接口,使其满足客户端的接口需求。 ##### 实现案例:...

    防火墙透明模式配置举例

    防火墙透明模式的设置、配置举例,例如H3C的百M墙。

    Java设计模式举例原码

    对23中设计模式进行了详细的举例介绍。欢迎你的加入Java设计模式学习。 作者介绍: Rohit Joshi works as a Software Engineer in the Consumer Product Sector. He is a Sun Certified Java Programmer. He had ...

    华为防火墙配置虚拟防火墙举例(路由模式)

    本文详细描述了华为防火墙路由模式下配置虚拟防火墙的用途和配置命令及命令的用途

    观察者模式和策略模式举例

    观察者模式和策略模式是软件设计模式中的两种重要概念,它们在解决特定问题时能提供高效、灵活的解决方案。设计模式是一种在特定情况下解决问题的通用、可重用的解决方案,是经验丰富的软件开发者们智慧的结晶。 ...

    23种面向对象设计模式

    2. **结构型模式**(Structural Patterns):主要关注如何组合类和对象以实现更大的结构,包括适配器模式(Adapter)、桥接模式(Bridge)、装饰器模式(Decorator)、外观模式(Facade)、享元模式(Flyweight)、...

    设计模式举例-抽象工厂模式(有图有真相)

    抽象工厂模式是设计模式中的一种创建型模式,它提供了一种创建对象集合的接口,而无需指定具体类。这种模式的关键在于,它允许客户端代码在不关心具体实现的情况下,能够创建一系列相关的对象,同时保持了良好的封装...

    单例模式举例

    本代码有利于java初学者理解单例模式很好地例子。我初学时这个例子帮老大忙了,贡献给大家

    c++ 设计模式讲解及实际举例说明

    "C++ 设计模式讲解及实际举例说明" C++ 设计模式是一种在软件开发中广泛应用的技术,旨在提高代码的可维护性、可扩展性和可重用性。设计模式是对常见问题的解决方案,通过使用设计模式,可以避免常见的问题和错误。...

    java设计模式【三国来举例】

    "java设计模式【三国来举例】"这个主题将设计模式的概念与耳熟能详的三国故事相结合,旨在以更直观、易懂的方式阐述这些抽象的编程理念。 设计模式并非具体的代码或库,而是一种经验总结,它描述了在特定场景下如何...

    C# 24种设计模式代码及应用举例

    本资料包“C# 24种设计模式代码及应用举例”涵盖了设计模式的核心概念和实践应用,帮助开发者深入理解并熟练运用这些模式。 1. **单例模式**:确保一个类只有一个实例,并提供全局访问点。在C#中,可以使用静态成员...

    Head First设计模式-每一个设计模式的举例及UML图!ghyghost

    每一个设计模式的举例及UML图! 值不值得就看各位对HF这本书的认同了,, 里面我使用visual paradigm site 3.4版 进行举例化的 UML图和JAVA源代码实现 而且有专有QQ群去讨论。 VP画的UML图是非常的漂亮,VP也是...

    lua设计模式总结

    创建型模式 1、简单工厂模式lua实现 2、工厂方法模式lua实现 3、原型模式lua实现 4、建造者模式lua实现 5、单例模式lua实现 6、抽象工厂模式lua实现 结构型模式 1、装饰模式lua实现 2、代理模式lua实现 3、外观模式...

Global site tag (gtag.js) - Google Analytics