`
squirrelRao
  • 浏览: 67815 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

设计模式之Adapter模式

阅读更多

Adapter Pattern


  • 描述:提供一种解决方案,使不兼容的接口间能够互相协调工作,而不需要对已有接口进行修改。
  • 与之相关的设计模式:Bridge Pattern, Decorator Pattern
    Adapter Pattern可以通过两种方式实现(即:达到接口间数据类型格式转换的目的),一种是通过继承的方式实现,一种是使用委托聚合的方式实现。

  • 采用继承的方式实现Adapter Pattern:

          Adapter Pattern对应的类图:


 

   
   在实现过程中,Adapter的作用在以下的Java代码中可以得到体现:
  //Main
public static void main(String[] args)
 {
         XyzInterface xyz = new Adapter("xyz");
        xyz.action();
}

//XyzInterface.java
 public interface XyzInterface()
 {
      public void action(String arg);
}

//Adapter.java
 public class Adapter extends ActionEntity implements XyzInterface()
  {
          public void action(String arg)
           {
                  return this.entityAction(arg);    
           }

}
 
 //ActionEntity.java
 public class ActionEntity
 {
        public String entityAction(String arg)
        {
                return "<"+arg+">";
          }
}
 
  • 采用聚合的方式实现Adapter Pattern:
          Adapter Pattern对应的类图:


 
              在实现过程中,Adapter的作用在以下的Java代码中可以得到体现:
            
             public static void main(String[] args)
             {
                  XyzInterface xyz = new Adapter("xyz");
                  xyz.action();
              }

             //XyzInterface.java
             public interface XyzInterface()
              {
                     public void action(String arg);
               }

              //Adapter.java
              public class Adapter implements XyzInterface()
              {
                      private ActionEntity actionEntity;
                       
                      public Adapter()
                       {
                          actionEntity = new ActionEntity();
                       }

                       public void action(String arg)
                       {
                             return actionEntity.entityAction(arg);    
                        }

                }
 
                //ActionEntity.java
                public class ActionEntity
                {
                       public String entityAction(String arg)
                       {
                             return "<"+arg+">";
                       }
                 }
 

  • Adapter Pattern发挥作用的场景:
          1在实际开发过程中经常需要利用一些已经写好的类,但是这些已经写好的类还不能完全符合调用接口的要求,写一个Adapter作为二者之间的转化就可以发挥Adpater Pattern的作用。关键的是不用重新开发新代码或拷贝出冗余的代码出来,用Adapter类做一个转化即可。就像所谓的12V电压升压为24V一样。
           2、Adapter Pattern并不只能用到有自己开发的接口上,也能用到别人开发的接口上,只要知道这些接口的规范即可。
           3、Adapter Pattern的另一个用武之地就是在解决版本更新和兼容问题上。可以保证新旧版本共存的前提下对新版本进行维护升级。

 

  • 大小: 27.3 KB
  • 大小: 9.4 KB
1
1
分享到:
评论

相关推荐

    设计模式之Adapter模式和代码实现

    Adapter模式是一种设计模式,主要目的是解决不同接口之间不兼容的问题,使得原本无法协同工作的类能够协同工作。在本文中,我们通过一个形如"形状"的范例来讲解Adapter模式的概念和实现。 首先,我们有一个抽象基类...

    ②设计模式之Adapter模式

    Adapter模式是一种结构型设计模式,它允许不兼容的类或接口之间进行通信。在软件开发中,我们常常遇到这样的情况:需要使用一个已经存在的类,但是它的接口与我们的需求不匹配,这时候Adapter模式就能派上用场。它...

    设计模式之 适配器 Adapter C++ 源码

    设计模式之 适配器 Adapter C++ 源码 vs2019 工具,设计模式之 适配器 Adapter C++ 源码 vs2019 工具,设计模式之 适配器 Adapter C++ 源码 vs2019 工具,设计模式之 适配器 Adapter C++ 源码 vs2019 工具,设计模式...

    设计模式1,FACADE模式,Adapter

    设计模式是软件开发中的重要概念,它是一种在特定场景下解决问题的通用、可重用的设计方案。设计模式的目的是为了提高代码的可读性、可维护性以及系统设计的灵活性。本文将深入探讨FACADE模式、Adapter模式以及...

    JAVA设计模式chm文档

    设计模式之Adapter(适配器) 设计模式之Composite(组合) 设计模式之Decorator(油漆工) 设计模式之Bridge 设计模式之Flyweight(享元) 行为模式: 设计模式之Template 设计模式之Memento(备忘机制) 设计模式之Observer ...

    设计模式之适配器模式(Adapter Pattern)

    适配器模式是软件设计模式中的一种,它的主要目的是解决接口不兼容问题,使得原本由于接口差异无法协同工作的类能够协同工作。在实际的软件开发过程中,我们常常遇到这样的情况:旧有的系统或第三方库提供了丰富的...

    设计模式之适配器模式(Adapter模式)

    介绍24设计模式中的Adapter模式,如果使用,实例讲解,等等

    设计模式之美—学习笔记

    在这个“设计模式之美”的学习笔记中,我们将探讨一些主要的设计模式,以及它们在实际开发中的应用。 首先,我们从创建型模式开始。这类模式主要用于对象的创建,如单例模式(Singleton)、工厂模式(Factory ...

    javascript设计模式之Adapter模式【适配器模式】实现方法示例

    在软件设计领域中,设计模式是解决特定问题的一般性模板。其中适配器模式(Adapter Pattern)是一种经常被用于不同接口或抽象层次之间的解决方案。在JavaScript中,适配器模式的实现有助于将不同的接口统一起来,使...

    设计模式中的适配器设计模式

    java中的适配器模式,Adapter设计模式(包装器)23种设计模式之一

    c++-设计模式之适配器模式(Adapter Pattern)

    适配器模式(Adapter Pattern)是一种结构型设计模式,它允许将一个接口转换为客户端期望的另一个接口。适配器模式常用于解决由于接口不兼容而无法正常工作的类之间的协作问题。 适配器模式的组成 目标接口(Target...

    设计模式文档 chm

    设计模式之Adapter(适配器) 设计模式之Composite(组合) 设计模式之Decorator(油漆工) 设计模式之Bridge 设计模式之Flyweight(享元) 行为模式: 设计模式之Template 设计模式之Memento(备忘机制) 设计模式之Observer ...

    Java设计模式之禅

    《Java设计模式之禅》是一本深入浅出讲解设计模式的书籍,书中不仅包含23种经典设计模式的案例,还详细介绍了设计模式背后的思想和原则,适合初学者以及对设计模式有一定了解的程序员阅读。本书旨在帮助读者理解如何...

    设计模式之适配器Adapter

    在软件设计领域,适配器模式(Adapter Pattern)是一种常用的设计模式,它的主要作用是将两个不兼容的接口之间建立连接,使得原本无法一起工作的类能够协同工作。适配器模式可以看作是一个转换器,它将一个类的接口...

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

    设计模式是软件工程中的一种重要思想,它是在特定情境下,为解决常见问题而形成的一套最佳实践。在本文中,我们将深入探讨24种设计模式,并结合混合设计模式的概念,以及它们在实际项目中的应用案例。 首先,设计...

    Head First 设计模式 (七) 适配器模式(Adapter pattern) C++实现

    适配器模式(Adapter pattern)是软件设计模式中的一种,其主要目的是解决系统间接口不兼容的问题,使得原本无法直接协作的类或者组件能够协同工作。在“Head First 设计模式”这本书中,适配器模式被深入浅出地讲解...

    设计模式 之 “适配器模式[Adapter Pattern]”

    适配器模式(Adapter Pattern)是软件设计模式中的一种,其主要目的是使两个不兼容的接口之间能够协同工作。在IT行业中,我们经常遇到不同系统、库或组件之间的接口不一致,导致它们无法直接交互。适配器模式就提供...

    设计模式C++学习之适配器模式(Adapter)

    适配器模式(Adapter)是软件工程中一种常用的设计模式,它允许两个不兼容的接口之间进行通信。在C++编程中,适配器模式能够帮助我们复用现有的类,或者将第三方库的接口与我们的系统接口进行对接,从而提高代码的可...

Global site tag (gtag.js) - Google Analytics