结构性设计模式(1)--适配器模式
前言
在解决了对象的创建问题之后,对象的组成以及对象之间的依赖关系就成了开发人员关注的焦点,因为如何设计对象的结构、继承和依赖关系会影响到后续程序的维护性、代码的健壮性、耦合性等。
理解:
适配器结构:目标+适配器+被适配者(客户端)(类,接口,对象)
目标和被适配者是解耦的
适配器本质:就是转换器,将某个类的接口转换为客户端期望的另一个接口,
接口的形参和返回值其实就是转换器的入口和插口
人工客服就是顾客传递信息给公司的适配器
(1).类适配器:手机充电例子
被适配者依赖适配器接口
适配器实现适配器接口,继承被适配者,适配方法返回值给目标类
(继承不解耦,这里使用了并不好,使用被适配者的output220()方法,,又暴露了适配器类)
客户端依赖被适配者和适配器
(2).对象适配器模式
对象适配器即给目标对象做适配函数
手机的手电电压固定为5v,现在在中国电压为220v
要充电就需要一个充电适配器,我们可以在手机类或者中国电压类中写转化方法解决
手机的手电电压固定为5v,现在去美国电压变为110v
若原来的适配方法在中国的电压类中,不能重用了,新写的美国电压类又要写适配方法
若原来的适配方法在手机类中,要到类中去找到适配方法所有相关来修改
考虑到变化的是这种适配方法,所以给手机做适配接口,适配接口的实现类聚合中国电压
如果新到泰国,原来已有泰国电压类,只需要写一个泰国电压适配类,原有类不变
若新手机电压为6v,则。。。。
这个例子种adapter类不再继承被适配者,而是聚合被适配者,继承被解耦