首页 > 编程学习 > 【结构型】适配器模式(Adapter)

【结构型】适配器模式(Adapter)

发布时间:2022/11/8 15:38:48

目录

    • 适配器模式(Adapter)
    • 适用场景
      • 类适配器模式
      • 对象适配器模式
    • 对象适配器模式实例代码(Java)

适配器模式(Adapter)

将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

适用场景

  • 想使用一个已经存在的类,而它的接口不符合要求。
  • 想创建一个可以服用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。
  • (仅适用于对象Adapter)想使用一个已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。

类适配器模式

类适配器模式使用多重继承对一个接口与另外一个接口进行匹配。
在这里插入图片描述

对象适配器模式

对象适配器依赖于对象组合。

在这里插入图片描述

✦ Target定义Client使用的与特定领域相关的接口。
✦ Client与符合Target接口的对象协同。
✦ Adaptee定义一个已经存在的接口,这个接口需要适配。
✦ Adapter对Adaptee的接口与Target接口进行适配。

对象适配器模式实例代码(Java)

//Target定义Client使用的与特定领域相关的接口。
class Target_USB {
    public void Request() {
        System.out.println("USB数据线");
    }
}

class Adaptee_TypeC {
    public void SpecificRequest() {
        System.out.println("Type-C数据线");
    }
}

class Adapter extends Target_USB {
    private Adaptee_TypeC typeC = new Adaptee_TypeC();

    @Override
    public void Request() {
        typeC.SpecificRequest();
    }
}

public class AdapterMain {
    public static void main(String[] args) {
        Target_USB usb = new Adapter();
        usb.Request();
    }
}

其他设计模式详见本专栏其他博文~
特别感谢zst_2001在备考软考期间提供的帮助,贴上博主B站
zst_2001的个人空间

Copyright © 2010-2022 dgrt.cn 版权所有 |关于我们| 联系方式