设计模式-适配器模式

适配器模式:

       适配器模式(Adapter Pattern)是属于结构型类的设计模式,它的主要目的是将一个类的接口转换成客户端期望的另一个接口。用于统一兼容,使之可相互调用。

1 模式角色:

  • 目标接口(Target):这是客户期待的接口,它定义了客户端需要调用的方法。
  • 适配者(Adaptee):这是现有的接口,我们想要通过适配器将其功能与目标接口相匹配。
  • 适配器(Adapter):这个类实现了目标接口,并包含适配者对象的引用。适配器负责在内部调用适配者的具体方法,以满足目标接口的要求。

 

2 工作原理: 

       适配器模式通过包装一个已有类(适配者),使它符合新接口(目标接口)。在使用目标接口的地方就可以透明地使用适配器所包装的对象,即使该对象的原始接口与目标接口不完全一致。

 

3 示例代码: 

   适配器模式java代码:

// 目标接口
public interface Target {
    void request();
}

// 适配者类
public class Adaptee {
    public void specificRequest() {
        System.out.println("xxx");
    }
}

// 适配器类
public class Adapter implements Target {
    private Adaptee adaptee;

    public Adapter(Adaptee adaptee) {
        this.adaptee = adaptee;
    }

    @Override
    public void request() {
        // 在这里调用适配者的方法,使其符合目标接口
        adaptee.specificRequest();
    }
}

// 客户端代码
public class Client {
    public static void main(String[] args) {
        Adaptee adaptee = new Adaptee();
        Target target = new Adapter(adaptee);
        target.request(); 
    }
}

 

4 适用场景:

  • 当系统需要使用现有类库中的某些类,但这些类的接口不符合系统的接口规范时。
  • 在多个类之间存在接口不兼容,需要统一接口进行交互时。
  • 当希望将第三方组件或遗留代码与新系统集成时,可以通过适配器模式来实现无缝对接。

相关推荐

  1. 设计模式适配器模式

    2024-01-17 07:54:02       45 阅读
  2. 设计模式——适配器模式

    2024-01-17 07:54:02       34 阅读
  3. 设计模式-适配器模式

    2024-01-17 07:54:02       30 阅读
  4. 设计模式——适配器模式

    2024-01-17 07:54:02       27 阅读
  5. 设计模式-适配器模式

    2024-01-17 07:54:02       27 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-17 07:54:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-17 07:54:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-17 07:54:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-17 07:54:02       20 阅读

热门阅读

  1. SpringBoot异步处理

    2024-01-17 07:54:02       36 阅读
  2. 移除元素(简单)

    2024-01-17 07:54:02       39 阅读
  3. springboot集成kafka消费数据

    2024-01-17 07:54:02       37 阅读
  4. UG NX二次开发(C#)-机械管线布置-添加管道路径

    2024-01-17 07:54:02       58 阅读
  5. 如何使用ActiveMQ详细讲解

    2024-01-17 07:54:02       31 阅读
  6. 入门clickhouse的坑

    2024-01-17 07:54:02       29 阅读
  7. 如何使用ActiveMQ

    2024-01-17 07:54:02       32 阅读
  8. 设计模式——适配器模式

    2024-01-17 07:54:02       34 阅读
  9. 《微信小程序开发从入门到实战》学习八十一

    2024-01-17 07:54:02       32 阅读
  10. Django搜索排序

    2024-01-17 07:54:02       42 阅读
  11. Python和Julia TensorFlow科学计算常微分方程求解器

    2024-01-17 07:54:02       28 阅读
  12. python期末考试:函数与模块

    2024-01-17 07:54:02       33 阅读
  13. django中orm模型类多种用法

    2024-01-17 07:54:02       26 阅读
  14. 友元函数与友元类

    2024-01-17 07:54:02       34 阅读