适配器

52 阅读1分钟

角色

  • Target(目标接口):客户端使用的接口标准
  • Adapter(适配器):实现目标接口,适配被适配者的接口
  • Adaptee(被适配者):被是适配者的接口
  • Client(客户端):目标接口的调用者

UML类图

对象适配器模式

无标题-2025-05-07-0952.png

类适配器模式

无标题-2025-05-07-0952.png

代码示例

对象适配

/**
 * 安卓充电器
 */
public interface AndroidCharger {

    /**
     * 充电
     */
    void charge();
}
public class AndroidChargerImpl implements AndroidCharger {
    @Override
    public void charge() {
        System.out.println("Android Charger");
    }
}
/**
 * 苹果充电器
 */
public interface AppleChargers {

    /**
     * 充电接口
     */
    void charger();

}
public class AppleChargersImpl implements AppleChargers {

    @Override
    public void charger() {
        System.out.println("Apple charger");
    }
}
public class ChargeAdapter implements AndroidCharger {

    private AppleChargers appleChargers;

    public ChargeAdapter(AppleChargers appleChargers) {
        this.appleChargers = appleChargers;
    }

    @Override
    public void charge() {
        System.out.println("Adapter Apple Charger");
        appleChargers.charger();
    }
}
public class Client {

    public static void main(String[] args) {
        AppleChargers appleChargers = new AppleChargersImpl();
        AndroidCharger androidCharger = new ChargeAdapter(appleChargers);
        androidCharger.charge();
    }
}

类适配

public class ChargeAdapter extends AppleChargersImpl implements AndroidCharger {


    @Override
    public void charge() {
        System.out.println("Adapter Apple Charger");
        charger();
    }
}
    public static void main(String[] args) {
        AndroidCharger androidCharger = new ChargeAdapter();
        androidCharger.charge();
    }
}