1、定义

将一个接口转换成客户希望的另一个接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类,可以一起工作。

2、UML图

8fHV6x.png

3、组成

  • 目标类(Target):客户端(Client)直接调用的类
  • 被适配类(Adaptee):实际上执行逻辑的类,但是不能直接被客户端调用
  • 适配器类(Adapter):将目标类被适配类 进行适配,是客户端能使用被适配类的功能

4、代码

// 直接调用的类
public class Target {
    public void request(){
        System.out.println("普通请求!");
    }
}

// 被适配类,实际执行功能的类
public class Adaptee {

    public void specialRequest(){
        System.out.println("特殊请求!");
    }
}

// 适配器类
public class Adapter extends Target {
    private Adaptee adaptee = new Adaptee();

    @Override
    public void request() {
      	// 执行被适配类功能
        adaptee.specialRequest();
    }
}

// 客户端
public class Main {
    public static void main(String[] args) {
       // 执行适配器类的逻辑
        Target target = new Adapter();
        target.request();
    }
}

执行结果

特殊请求!

5、优缺点

6、适用场景