Spring 设计模式之适配器模式

Spring 设计模式之适配器模式

适配器模式

适配器模式(Adapter Pattern)是一种结构型设计模式,它允许接口不兼容的类一起工作。

其核心思想是通过一个适配器类将不兼容的接口转换成客户端期望的另一个接口,使原本由于接口不兼容而不能一起工作的那些类可以一起工作

两者通过适配器一起工作,强调

1.通过实现目标接口和内部组合

2.实现的目标接口一定是旧对象

3.不是通过继承

用到的场景

1.新的对象,需要旧对象里面的方法

2.A有,B没有,B就通过适配器去获取A里面的元素(方法)

需要存在的核心类:

1.适配器类(实现旧对象)

java举例

java 复制代码
// 旧的打印机接口  
public interface OldPrinter {  
    void printOldWay(String content);  
}

// 旧的打印机实现  
public class OldPrinterImpl implements OldPrinter {  
    @Override  
    public void printOldWay(String content) {  
        System.out.println("使用旧的方式打印内容: " + content);  
    }  
}

// 新的打印机接口  
public interface NewPrinter {  
    void printNewWay(String content);  
}

// 适配器类,将旧的打印机适配为新的打印机  
public class PrinterAdapter implements NewPrinter {  
    private OldPrinter oldPrinter;  
  
    public PrinterAdapter(OldPrinter oldPrinter) {  
        this.oldPrinter = oldPrinter;  
    }  
  
    @Override  
    public void printNewWay(String content) {  
        // 适配过程:将新方式的内容适配为旧方式的内容进行打印  
        oldPrinter.printOldWay(content);  
    }  
}

// 新的文档类,它需要一个新打印机来打印  
public class NewDocument {  
    public void print(NewPrinter printer) {  
        printer.printNewWay("这是一个新文档的内容");  
    }  
}

// 调用使用示例
public class AdapterPatternDemo {  
    public static void main(String[] args) {  
        // 创建一个旧的打印机实例  
        OldPrinter oldPrinter = new OldPrinterImpl();  
  
        // 使用适配器将旧的打印机适配为新的打印机  
        NewPrinter newPrinter = new PrinterAdapter(oldPrinter);  
  
        // 创建一个新的文档并打印  
        NewDocument document = new NewDocument();  
        document.print(newPrinter);  
    }  
}

运行结果

java 复制代码
使用旧的方式打印内容: 这是一个新文档的内容
相关推荐
vker1 小时前
第 1 天:单例模式(Singleton Pattern)—— 创建型模式
java·设计模式
晨米酱20 小时前
JavaScript 中"对象即函数"设计模式
前端·设计模式
数据智能老司机1 天前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
金銀銅鐵1 天前
Spring 中的 initializeBean 方法的内部逻辑小总结
spring
数据智能老司机1 天前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机1 天前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机1 天前
精通 Python 设计模式——性能模式
python·设计模式·架构
使一颗心免于哀伤1 天前
《设计模式之禅》笔记摘录 - 21.状态模式
笔记·设计模式
数据智能老司机2 天前
精通 Python 设计模式——创建型设计模式
python·设计模式·架构
数据智能老司机2 天前
精通 Python 设计模式——SOLID 原则
python·设计模式·架构