📜  设计模式-适配器模式(1)

📅  最后修改于: 2023-12-03 15:12:08.703000             🧑  作者: Mango

设计模式-适配器模式

介绍

适配器模式(Adapter Pattern)是一种结构型设计模式。适配器模式将一个类的接口转换成另一种接口,以满足客户端的需求。适配器模式常常用于一些现有类的接口与客户端要求的接口不匹配的情况下使用。

适用场景
  1. 已经存在的类的接口不符合我们的需求;
  2. 创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作;
  3. 使用一些已经存在的子类而不需要对其进行修改,以便与一些其他类一起工作;
  4. 需要一个统一的输出接口,而输入的格式和接口是多种多样的;
UML类图

适配器模式 UML 类图

适配器模式中的三个角色:

  • Target:目标抽象类
  • Adaptee:适配者类
  • Adapter:适配器类
代码示例
Target (目标抽象类)
public interface Target {
    void request();
}
Adaptee (适配者类)
public class Adaptee {
    public void specificRequest() {
        System.out.println("This is a specific request.");
    }
}
Adapter (适配器类)
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();
    }
}
优缺点
优点
  1. 可以让两个不兼容的接口协同工作;
  2. 提高了类的复用率;
  3. 增加了类的透明度;
  4. 灵活性和扩展性非常好;
缺点
  1. 适配器模式的使用过程中需要额外的代码量;
  2. 少量的适配器模式不易于理解,过多使用会让系统变得复杂难以维护。
结论

适配器模式是一种非常常见的模式,它可以让我们以最低的成本维护和扩展代码。在实际开发中,我们经常会遇到接口不兼容的情况,这时候就可以使用适配器模式进行转化。同时,适配器模式的使用也增加了代码的复用性,提高了系统的可扩展性和灵活性。因此,适配器模式是一个非常好的设计模式。