将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。
(1)目标(Target)——客户所期待得到的接口,目标可以是具体的或抽象的类,也可以是接口。
(2)源(Adaptee)——已经存在的、需要适配的类。源可以是具体的或抽象的类,也可以是接口。
(3)适配器(Adapter)——适配器是本模式的核心。适配器把源接口转换成目标接口。显然,这一角色不可以是接口,而必须是实类。
类适配器模式与对象适配器模式的不同之处在于二者包装Adaptee源角色时,类适配器包装的是Adeptee类,而对象适配器则直接包装了一个源Adepter的实例。此处的差别导致了在具体实现时各个角色的不同实现方式(以类还是接口)。
类适配器:
对象适配器: