适配器模式

所谓适配器模式就是将一个类的接口,转换成客户期望的另一个接口。它可以让原本两个不兼容的接口能够无缝完成对接。

让我们通过一个简单的例子来说明适配器模式。假设你有一个旧的系统,它有一个用于显示文本的组件,接口如下:

java 复制代码
// 旧的文本显示接口
interface OldTextComponent {
    void displayText(String text);
}

现在,你正在开发一个新的系统,它有一个名为 NewTextComponent 的文本显示组件,接口如下:

java 复制代码
// 新的文本显示接口
interface NewTextComponent {
    void show(String content);
}

但是,你的新系统中的某些部分需要使用旧系统的文本显示组件。这时候,适配器模式就可以派上用场。首先,创建一个适配器,将 OldTextComponent 适配成 NewTextComponent

java 复制代码
// 适配器类
class TextComponentAdapter implements NewTextComponent {
    private OldTextComponent oldTextComponent;

    public TextComponentAdapter(OldTextComponent oldTextComponent) {
        this.oldTextComponent = oldTextComponent;
    }

    @Override
    public void show(String content) {
        // 调用旧系统的方法来适配新系统的接口
        oldTextComponent.displayText(content);
    }
}

现在,你可以在新系统中使用适配器,无需修改旧系统的代码:

java 复制代码
public class Client {
    public static void main(String[] args) {
        // 使用新的文本组件
        NewTextComponent newTextComponent = new NewTextComponentImpl();
        newTextComponent.show("New System Text");

        // 使用适配器,将旧的文本组件适配成新的接口
        OldTextComponent oldTextComponent = new OldTextComponentImpl();
        NewTextComponent adapter = new TextComponentAdapter(oldTextComponent);
        adapter.show("Adapted Text");
    }
}

这样,通过适配器模式,你在新系统中可以无缝使用旧系统的组件,同时保持了新系统的一致性和灵活性。适配器将旧系统的接口转换成了新系统所需的接口,实现了两者的兼容。

相关推荐
冰茶_7 天前
适配器模式:让不兼容接口协同工作
microsoft·设计模式·适配器模式
无问8177 天前
SpringBoot:统一功能处理、拦截器、适配器模式
spring boot·后端·适配器模式
暴躁哥13 天前
深入理解设计模式之适配器模式
设计模式·适配器模式
JAVA坚守者1 个月前
Java 性能调优全解析:从设计模式到 JVM 的 7 大核心方向实践
适配器模式·并发编程·jvm 调优·javacc·熔断机制·java 性能优化·jmh 测试
wjm0410061 个月前
C++八股--5--设计模式--适配器模式,代理模式,观察者模式
c++·设计模式·适配器模式
催眠大树1 个月前
适配器模式(Adapter Pattern)
java·开发语言·适配器模式
帝锦_li1 个月前
Java进阶--设计模式
观察者模式·单例模式·代理模式·抽象工厂模式·适配器模式·原型模式
星星点点洲1 个月前
【设计模式区别】装饰器模式和适配器模式区别
设计模式·适配器模式·装饰器模式
?abc!1 个月前
设计模式基础概念(结构型模式):适配器模式(Adapter Pattern)
python·设计模式·适配器模式
碎梦归途2 个月前
23种设计模式-结构型模式之适配器模式(Java版本)
java·开发语言·jvm·单例模式·设计模式·适配器模式