角色
- Target(目标接口):客户端使用的接口标准
- Adapter(适配器):实现目标接口,适配被适配者的接口
- Adaptee(被适配者):被是适配者的接口
- Client(客户端):目标接口的调用者
UML类图
对象适配器模式

类适配器模式

代码示例
对象适配
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();
}
}