美文网首页
[100]技术-适配器模式

[100]技术-适配器模式

作者: shawnxjf | 来源:发表于2017-12-27 20:48 被阅读0次

什么是适配器模式

现有接口 iA,iB的情况下,我们希望在不修改已有代码的情况下iA可以使用iB的接口。根据开放封闭原则,我们可以立马想到增加一个类使iA兼有iB接口的功能。这就是适配器接口的由来,其定义可以为:Adapter pattern works as a bridge between two incompatible interfaces.

如何写适配器

适配器是在已有两个不兼容的接口的背景下,以开放封闭原则来编码代码形成的一种规范。
我们举一个场景,其现有代码:

iA
{
   doA();
}
iB{
    doB();
}
main()
{
  iA a = new Aimpl(); 
  a.doA(); 
}

我们希望在main(){}方法中,a.doA()具有iB.doB()接口的功能。由此我们想到了wrapper 对象把A包装起来。

AdapterToB implement iA  //至于AdapterToB需不需要实现iB接口不重要,不是适配器模式所规范的
{  
      iB b;
      public void  doA()
      {
             b.doB();
      }
}
//我们只需要添加一个类:AdapterToB 在调用的时候把对象实例替换掉就可以,具体场景中也许A对象实例是通过spring注入的,此时只需要修改配置文件即可。
main()
{
    iA a = new AdatperToB(); 
    a.doA(); 
}

适配器与代理模式区别

谈到代理模式与适配器的区别,我们先简单回顾下代理模式是什么样的。

public  ProxyA implement A  //运用代理后客户端访问接口不变所以需要继承相同的接口。
{
    RealA a;
    public void do()
   {
        //create A if a is not create
       //dosomething.....
       a.do();
   }
}

看了上面简单描述我们知道代理模式描述的是A与proxyA的关系,比如A是一个远程调用我需要代理起来可以额外空盒子。
而适配器模式描述的是解决 iA,iB之间的关系,设计到 iA,iB,AdapterToB三个类之间的关系。

说在后面的话

1.学习东西要带入场景,比如适配器模式是已有iA,iB两个接口的情况下,如何使其兼容。
2.如果只有一个接口iA, 你想替换到iA的接口iA实现类不多或者已有的实现不用了,那么直接在iA实现类上修改即可。
比如:

Aimpl1 implement iA
{
   doA()
   {
         XXXXXX Aimpl1 doA
   }
}

3.又比如iA有很多的实现比如Aimp1,Aimpl2,Aimpl3,且代码中大量引用Aimpl1,Aimpl2,Aimpl3对象。
如果你在新的场景下需要iA接口具有新的功能,又不想修改iA接口(很多原因,比如iA是别的团队提供的),那么可以使用适配器模式。
然后在新的场景下使用适配器类。

//新的场景
    iA a = new AdatperToB(); 
    a.doA(); 

相关文章

  • [100]技术-适配器模式

    什么是适配器模式 现有接口 iA,iB的情况下,我们希望在不修改已有代码的情况下iA可以使用iB的接口。根据开放封...

  • Java设计模式(二)

    talk is cheap show me the code 适配器模式 类适配器模式 接口适配器模式 对象适配器...

  • 适配器模式

    目录 1、什么是适配器模式? 2、适配器模式结构? 3、如何实现适配器模式? 4、适配器模式的特点? 5、适配器模...

  • 设计模式之适配器模式

    适配器模式: 类适配器模式、对象适配器模式、接口适配器模式 1.类适配器模式:新的接口出现了,但是和老的接口不兼容...

  • 学习iOS设计模式第一章 适配器(Adapter)

    今天学习了iOS设计模式中的适配器模式,适配器有两种模式对象适配器模式-- 在这种适配器模式中,适配器容纳一个它包...

  • 第4章 结构型模式-适配器模式

    一、适配器模式简介 二、适配器模式的优点 三、适配器模式的实例

  • 设计模式(Design Patterns)适配器模式(Adapt

    适配器模式主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。 类的适配器模式 场景:将一个类转换成...

  • 适配器模式

    适配器模式主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。适配器模式将某个类的接口转换成客户端期...

  • 适配器模式

    先直观感受下什么叫适配器 适配器模式有类的适配器模式和对象的适配器模式两种不同的形式。 类适配器模式 对象适配器模...

  • 适配器模式

    适配器模式 一、适配器模式定义 适配器模式的定义是,Convert the interface of a clas...

网友评论

      本文标题:[100]技术-适配器模式

      本文链接:https://www.haomeiwen.com/subject/uohpgxtx.html