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的灵活性增强了。