美文网首页
适配器模式

适配器模式

作者: lj72808up | 来源:发表于2021-04-15 11:50 被阅读0次

1. 适配器模式是怎样出现的

适配器模式的用途就是用来做适配的,它将不兼容的接口转换为可兼容的接口,让原本由于接口不兼容而不能一起工作的类可以一起工作. 适配器模式是一种补偿模式, 用来规避接口不兼容的问题.
不兼容的现象, 出现在调用一个方法的时候, 方法的形参和要传入的实参对象类型不符. 比如: 形参一般使用多态, 采用接口类型 InterfaceA, 实参为类型 ClassB, 二者没有实现关系.

2. 适配器的实现

作为适配器, 既要实现接口 InterfaceA, 又要能使用目标类 ClassB. ClassB 的使用, 可以通过继承, 也可以通过组合

  • 类适配器: 通过继承使用 ClassB

    // 类适配器: 基于继承
    interface InterfaceA {
      void f1();
      void f2();
      void fc();
    }
    
    class ClassB {
      public void fa() { //... }
      public void fb() { //... }
      public void fc() { //... }
    }
    
    public class Adaptor extends ClassB implements InterfaceA {
      public void f1() {
        super.fa();
      }
    
      public void f2() {
        //...重新实现f2()...
      }
    
      // 这里fc()不需要实现,直接继承自ClassB,这是跟对象适配器最大的不同点
    }
    
    
  • 对象适配器: 通过组合使用 ClassB

    // 对象适配器:基于组合
    interface InterfaceA {
      void f1();
      void f2();
      void fc();
    }
    
    class ClassB {
      public void fa() { //... }
      public void fb() { //... }
      public void fc() { //... }
    }
    
    public class Adaptor implements InterfaceA {
      private classB ClassB;
    
      public Adaptor(ClassB ClassB) {
        this.classB = ClassB;
      }
    
      public void f1() {
        classB.fa(); //委托给ClassB
      }
    
      public void f2() {
        //...重新实现f2()...
      }
    
      public void fc() {
        classB.fc();
      }
    }
    

3. 代理,桥接, 装饰器, 适配器模式的区别

  • 代理模式:代理模式在不改变原始类接口的条件下,为原始类定义一个代理类,主要目的是控制访问,而非加强功能,这是它跟装饰器模式最大的不同。
  • 桥接模式:桥接模式的目的是将接口部分和实现部分分离,从而让它们可以较为容易、也相对独立地加以改变。
  • 装饰器模式:装饰者模式在不改变原始类接口的情况下,对原始类功能进行增强,并且支持多个装饰器的嵌套使用。
  • 适配器模式:适配器模式是一种事后的补救策略。适配器提供跟原始类不同的接口,而代理模式、装饰器模式提供的都是跟原始类相同的接口。

相关文章

  • 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...

  • 设计模式:结构型

    享元模式 (Pools,Message) 代理模式 适配器模式 :类适配器和对象适配器 装饰者模式 外观模式 桥接...

网友评论

      本文标题:适配器模式

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