设计模式-适配器模式

适配器模式:

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

1 模式角色:

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

2 工作原理:

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

3 示例代码:

适配器模式java代码:

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 适用场景:

  • 当系统需要使用现有类库中的某些类,但这些类的接口不符合系统的接口规范时。
  • 在多个类之间存在接口不兼容,需要统一接口进行交互时。
  • 当希望将第三方组件或遗留代码与新系统集成时,可以通过适配器模式来实现无缝对接。
相关推荐
香蕉大香蕉(06敬畏市场)3 分钟前
MySQL 单点详解(01)
java·数据库·mysql·面试·博客·实习
LaughingZhu19 分钟前
Product Hunt 热榜 2026-10-30:Empacer、Scape、Floot in ChatGPT
java·前端·数据库·人工智能·chatgpt·notion
niucloud-admin37 分钟前
NIUCLOUD PHP SAAS上门家政使用文档:服务保障
java·开发语言·php
IT枫斗者枫哥1 小时前
CompletableFuture失败后返回空列表:异常没了,业务含义也变了
java·后端
知识搬运临时工1 小时前
一个模板把 AEM 拖进 Full GC 死亡螺旋:300% CPU、7 GB 堆、310 万行堆栈
java·aws
用户432935928051 小时前
CoAP还是MQTT:1万只Cat.1水表三个月带宽续航实测
java
知守观1 小时前
多模块架构演进:横向分层 vs 纵向领域,13 个真实项目的切分对照
java·后端·微服务
raindayinrain1 小时前
c++设计模式
开发语言·c++·设计模式
Java成神之路-2 小时前
Java String 为什么不可变?和 HashMap 到底有什么关系?
java
paopaokaka_luck2 小时前
基于springboot+vue的益暖微光公益服务平台(DeepSeek公益助手、善款信息追溯、志愿服务积分闭环、ECharts运营分析、活动状态自动流转)
java·前端·javascript·spring boot·mysql·架构·echarts