[Design] Adapter Pattern
结构模式
结构模式描述如何将类或者类的对象结合在一起形成更大的结构。
结构模式描述两种不同的东西:类与类的实例。结构模式可以分为:类的结构模式和对象的结构模式两种。
类的结构模式:类的结构模式使用继承来把类、接口等组合在一起,以形成更大的结构。类的结构模式是静态的,比如类形式的适配器模式。
对象的结构模式:对象的结构模式描述怎么样把不同类型的对象组合在一起,以实现新的功能的方法。对象的结构模式是动态的。比如代理人模式。
1. 适配器模式
适配器模式(Adapter Pattern)把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够一起工作。
用意是将接口不同而功能相同或者相近的两个接口加以转化。
适配器模式有类的适配器模式和对象的适配器。
类的适配器模式
类的适配器模式是使用继承关系把被适配类的API 转化成目标类的API,适配模式是静态的。
结构图及角色:
1. 目标角色
所期待得到的接口。注意类的适配器模式,目标不可以是类。
2. 源角色
现在需要适配的接口。
3. 适配器角色
此角色是模式的核心。适配器角色把源接口转换成目标接口。显然这一角色不可以是接口,而必须是具体类。
对象的适配器模式
与类的适配器模式不同,对象的适配器模式不是使用继承关系连接到目标,而是使用委派关系。这决定这个适配器模式是对象的。
结构图及角色:
1. 目标角色
所期待的角色,目标可以是具体的或抽象的类。
2. 源角色
现有需要适配的接口。
3. 适配器角色
本模式的核心。把源接口转换成目标接口,显然必须是具体类。