适配器模式 Adapter Pattern
将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
中国的标准电压是220V,但是很多国家如美国、日本是110V,去这些国家旅行时为了能给手机等设备充电,需要准备一个转换器,把110V电压转换为220V电压,这就是一种适配器模式。
那么在外观模式中提到的万能读卡器算不算适配器模式呢?也可以说是。适配器模式和外观模式很相似,若要说区别,就是外观模式更强调统一,适配器模式更强调转换。
UML图:
代码:
public interface Charger {
void chargeBy110V();
}
public class ChinaCharger {
public void chargeBy220V() {
System.out.println("使用220V充电");
}
}
public class Adapter implements Charger {
private ChinaCharger chinaCharger;
public Adapter() {
this.chinaCharger = new ChinaCharger();
}
@Override
public void chargeBy110V() {
chinaCharger.chargeBy220V();
}
}
客户端:
public class Client {
public static void main(String[] args) {
Charger charger = new Adapter();
charger.chargeBy110V();
}
}