ReadMe

适配器模式:

总:将一个类的接口转化成另一个接口,让原来不兼容的类可以兼容

e.g.以生活中充电器的例子来讲解适配器,充电器本身相当于 Adapter,220V 交流电相当于 src (即被适配者),我们的目标 dst(即 目标)是 5V 直流电。

121.png

1、类适配器模式:
1)源头类=》目标类,通过适配器类去具体操作
2)coding:定义目标接口(抽象方法【需要的电流】);源头类(插头);适配器类(变压器【继承源头类,实现目标接口】)
=》那么适配器就可以同时接收源头中的东西,也可以进行转化
3)注意和细节:
(1)缺点:Java 是单继承机制,所以类适配器需要继承 src 类这一点算是一个缺点, 因为这要求 dst 必须是接口,有一定局限性;
(2)src 类的方法在 Adapter 中都会暴露出来,也增加了使用的成本。
(3)优点:由于其继承了 src 类,所以它可以根据需求重写 src 类的方法,使得 Adapter 的灵活性增强了

2、对象适配器模式
1)原理和类适配器一样;目的为例解决类适配器缺点
2)改继承为聚合(使用聚合的方式,尽量使用构造方法传参【由客户端通过构造方法进行传参】)
3)注意事项和细节:
(1)对象适配器和类适配器其实算是同一种思想,只不过实现方式不同。对象适配器根据合成复用原则,使用5合替代继承,所以它解决了类适配器必须继承 src 的局限性问题,
也不再要求 dst必须是接口。
(2)使用成本更低,更灵活。

3、接口适配器模式

代码

类适配器(类继承和接口实现完成)

Client.javaVoltage5v.javaVoltage220v.javaVoltageAdapter.java

对象适配器(使用聚合优化)

Voltage5v.javaVoltage220v.javaVoltageAdapter.java