1、基本介绍
1)适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)
2)适配器模式属于结构型模式
3)主要分为三类:类适配器模式、对象适配器模式、接口适配器模式
2、实现原理
1)适配器模式:将一个类的接口转换成另一种接口.让原本接口不兼容的类可以兼容
2)从用户的角度看不到被适配者,是解耦的
3)用户调用适配器转化出来的目标接口方法,适配器再调用被适配者的相关接口方法
4)用户收到反馈结果,感觉只是和目标接口交互
3、类适配器模式
1.接口类
public interface Votage50V {
public int output50V();
}
2.目标类
public class Votage220V {
public int output220V(){
System.out.println("220V电压");
return 220;
}
}
3.适配器类
public class VoltageAdapter extends Votage220V implements Votage50V {
@Override
public int output50V() {
int src = output220V();
return src/4;
}
}
4、手机类
public class Phone {
public void charge(Votage50V v){
if (v.output50V()==50){
System.out.println("手机充电中");
}else {
System.out.println("电源不适 手机充爆");
}
}
}
5.客户端类
public static void main(String[] args) {
System.out.println("---类适配器---");
Phone phone = new Phone();
Votage50V v = new VoltageAdapter();
phone.charge(v);
}
5、类适配器模式注意事项和细节
1)Java是单继承机制,所以类适配器需要继承src类这一点算是一个缺点,因为这要求dst必须是接口,有一定局限性;
2)src类的方法在Adapter中都会暴露出来,也增加了使用的成本。
3)由于其继承了src类,所以它可以根据需求重写src类的方法,使得Adapter的灵活性增强了。