一. 定义

  • 将一个接口转化成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,而无需修改现有事务的内部结构。

二. 模式结构

uTools_1687590021613.png

1. Target(目标抽象类)

  • 定义客户要使用的特定的接口, 可以是抽象类或接口,具体的类。

2. Adapter(适配器类)

  • 适配器类可以调用另一个接口,作为一个转换器,对Adapter和Target进行适配。在类适配器中,它通过实现Target接口并继承Adaptee类使二者产生联系;在对象适配器中,它通过继承Target并关联一个Adaptee对象使二者产生联系。

3. Adaptee(适配者类)

  • 它定义了一个已经存在的接口,这个接口需要适配。适配者类一般为具体类,包含客户希望使用的业务方法。

三. 实例

uTools_1687590534596.png

1. Robot

public interface Robot {
    void cry();
    void move();
}

2. DogAdapter

public class DogAdapter extends Dog implements Robot {
    @Override
    public void cry() {
        System.out.print("机器人模仿:");
        super.wang();
    }

    @Override
    public void move() {
        System.out.print("机器人模仿:");
        super.run();
    }
}

3. Dog

public class Dog {
    public void wang() {
        System.out.println("狗叫?");
    }

    public void run() {
        System.out.println("狗跑?");
    }
}

4. Client

public class Client
{
    public static void main(String[] args) throws Exception
    {
        Robot robot=new DogAdapter();
        robot.cry();
        robot.move();
    }
}