设计模式-结构型模式-适配器模式

0 引言

结构型模式(Structural Pattern)关注如何将现有类或对象组织在一起形成更加强大的结构。

1 适配器模式

适配器模式(Adapter Pattern):将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。

复制代码
//首先,我们定义一个接口Target,这是客户端期望的接口:
public interface Target {
    void request();
}

//然后,我们有一个类Adaptee,它的接口与Target接口不兼容:
public class Adaptee {
    public void specificRequest() {
        System.out.println("Called specificRequest()");
    }
}
接下来,我们创建一个适配器Adapter,它实现了Target接口,并包含一个Adaptee对象。在Adapter的request()方法中,我们调用Adaptee的specificRequest()方法,从而实现了对Adaptee接口的包装:
public class Adapter implements Target {
    private Adaptee adaptee;

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

    @Override
    public void request() {
        adaptee.specificRequest();
        //TODO 做数据转换,拿到adptee的数据,转换为client需要的
    }
}

最后,我们在客户端代码中使用适配器模式:
public class Client {
    public static void main(String[] args) {
        Target target = new Adapter(new Adaptee());
        target.request();
    }
}
相关推荐
要开心吖ZSH12 小时前
零基础入门 Spring WebFlux 与 Project Reactor:从小白到顿悟
java·响应式编程·spring webflux
智塑未来12 小时前
装备制造行业设计制造一体化痛点攻克与实战经验总结
java·开发语言·制造
Devin~Y13 小时前
电商AIGC智能客服面试:JVM调优、Spring Cloud微服务、Redis缓存、Kafka消息、K8s观测与RAG落地
java·jvm·spring boot·redis·spring cloud·kafka·kubernetes
Ai马猴子13 小时前
企业定制专属模型,gpt-5.4-cdx高效适配,DMXAPI 安全合规
java·gpt·安全
星晨羽13 小时前
Java通过FTP协议实现文件上传下载
java·开发语言
逸Y 仙X13 小时前
文章三十:Elasticsearch SQL实战案例
java·大数据·sql·elasticsearch·搜索引擎·全文检索
小则又沐风a13 小时前
初步了解进程的概念
java·linux·服务器·前端
斌果^O^13 小时前
普通 SpringBoot 单体项目改造成微服务(Nacos+Gateway + 内部服务免鉴权)
java·spring boot·spring
摩羯座-小齐13 小时前
java excel级联下拉框
java·excel
砍材农夫13 小时前
物联网 基于netty入门与线程模型探秘简述
java·物联网·struts