Hey,编程路上是不是经常遇到这样的情况:一个类或者接口的功能很好,但是它的接口跟你的需求不匹配?别急,今天我们就来聊聊这个让人头疼的问题——适配器模式。
什么是适配器模式?
适配器模式(Adapter Pattern)是一种结构型设计模式,它允许将一个接口转换为客户期望的另一个接口,从而使原本不兼容的类能够协同工作。简单来说,就是通过适配器,让那些接口不兼容的类能够愉快地一起玩耍。
模式结构
- 目标接口(Target):定义客户端期望的接口。
- 源接口(Adaptee):需要被适配的接口。
- 适配器(Adapter):实现了目标接口,并持有源接口的一个实例。
工作原理
客户端通过适配器对象调用目标接口方法,适配器内部持有源接口对象的引用,并在实现目标接口方法时调用源接口对象的相关方法,实现接口的适配。
两种形式
- 类适配器:适配器类通过继承源接口并实现目标接口来实现适配。
- 对象适配器:适配器类通过组合而非继承来实现适配。
优缺点
- 优点:
- 复用现存类
- 提高系统的兼容性
- 提高灵活性
- 缺点:
- 过多的适配器会增加系统的复杂性
- 过多的类会增加类的数量
适用场景
- 需要使用一个已经存在的类,但它的接口不符合需求
- 想要创建一个可以复用的类
- 需要使用几个具有类似功能但接口不兼容的类
代码示例
// Java示例
public interface Target {
void request();
}
public class Adaptee {
public void specificRequest() {
System.out.println(
