通俗易懂设计模式(适配器模式)

131 阅读2分钟

适配器模式(Adapter Pattern)是一种结构型设计模式,它允许将一个类的接口转换成客户端期望的另一个接口,从而使原本不兼容的类可以一起工作。适配器模式可以实现客户端和不兼容接口之间的协同工作,它是一种使得原本不兼容的接口可以一起工作的桥梁。

适配器模式的主要组成部分包括:

  1. 目标(Target):定义了客户端所期望的接口,即适配器需要适配的接口。
  2. 适配者(Adaptee):表示需要适配的类,即现有的接口。
  3. 适配器(Adapter):实现了目标接口,并持有适配者的引用,通过调用适配者的方法来实现目标接口的方法。

适配器模式的优点:

  1. 提高了代码的复用性:适配器模式可以使得原本不兼容的接口可以一起工作,从而提高了代码的复用性。
  2. 提高了代码的可扩展性:适配器模式可以通过添加新的适配器来扩展系统的功能,而不需要修改已有的代码。
  3. 提高了代码的可维护性:适配器模式将适配过程和目标接口分离,使得代码更加清晰和易于维护。

Java 实现适配器模式的示例代码:

// 目标接口
public interface Target {
    void request();
}

// 适配者类
public class Adaptee {
    public void specificRequest() {
        System.out.println("Specific request");
    }
}

// 适配器类
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();
    }
}

在这个示例中,我们定义了一个目标接口 Target,它包含了一个 request() 方法。接着,我们定义了一个适配者类 Adaptee,它包含了一个 specificRequest() 方法。然后,我们定义了一个适配器类 Adapter,它实现了目标接口,并持有适配者的引用。在适配器类中,我们实现了目标接口的 request() 方法,通过调用适配者的 specificRequest() 方法来实现。

在客户端代码中,我们创建了一个适配者对象和一个适配器对象,并将适配者对象传递给适配器对象。然后,我们调用适配器对象的 request() 方法,从而实现了适配者类的 specificRequest() 方法的调用。