适配器模式(AdapterAdaptee)

将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。

(1)目标(Target)——客户所期待得到的接口,目标可以是具体的或抽象的类,也可以是接口。

(2)源(Adaptee)——已经存在的、需要适配的类。源可以是具体的或抽象的类,也可以是接口。

(3)适配器(Adapter)——适配器是本模式的核心。适配器把源接口转换成目标接口。显然,这一角色不可以是接口,而必须是实类。

类适配器模式与对象适配器模式的不同之处在于二者包装Adaptee源角色时,类适配器包装的是Adeptee类,而对象适配器则直接包装了一个源Adepter的实例。此处的差别导致了在具体实现时各个角色的不同实现方式(以类还是接口)。

类适配器:

对象适配器:

使用类适配器: 比较容易置换适配者的方法(对象适配器需要先做好适配者的子类将方法置换,后将子类当做适配者进行适配)。

使用对象适配器(1)当Adaptee中添加方法时,Adapter类不需要做任何更改调整,也能正确地进行动作。

                         (2)可以使用多态的方式在Adapter类中调用Adaptee类子类的方法。

建议使用对象适配器,能使用对象组合的方式,就不使用继承的方式。

原文地址:https://www.cnblogs.com/the-wang/p/7274271.html