适配器模式作为两个不兼容接口之间的桥梁,就是一个中间层,起着转化/委托的作用,将一种接口转化为另一种符合需求的接口。属于结构型模式。
生活中,手机充电,中国市电为220v交流电,不能直接给手机充电,需要通过电源适配器将交流电变成手机充电需要的直流电。电源适配器相当于一个桥梁,将两个不兼容的东西兼容到一起。
例如:
public class Client {
public static void main(String[] args) {
new ElectricAdapter(new GoneNiu()).electric();
}
// 220v交流电
public interface JiaoLiuDian220 {
void electric();
}
public static class GoneNiu implements JiaoLiuDian220 {
@Override
public void electric() {
System.out.println("公牛插座220v交流电");
}
}
// 20W直流电
public static class Iphone {
public void charge() {
System.out.println("iPhone12需要20W直流电充电");
}
}
// 适配器类
public static class ElectricAdapter extends Iphone implements JiaoLiuDian220 {
private GoneNiu goneNiu;
public ElectricAdapter(GoneNiu goneNiu) {
this.goneNiu = goneNiu;
}
@Override
public void electric() {
goneNiu.electric();
System.out.println("适配器进行交流转直流并适配功率");
super.charge();
}
}
}
运行结果: