适配器模式(变压器模式/包装模式wrapper)###
定义
将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。
三个角色
- Target目标角色
该角色定义把其它类转换为何种接口,也就是我们的期望接口,例子中的IUserInfo接口就是目标角色。 - Adaptee源角色
要被转换的角色,它是已经存在、运行良好的类或对象,经过适配器的包装,他会成为一个崭新、靓丽的角色。 - Adapter适配器角色
适配器核心角色,是两个已存在角色的转换桥梁。它的职责就是通过继承或类关联方式把源角色转为目标角色。
使用场景
准备修改一个已经在运行的接口时、系统扩展时, 需要使用一个已有或新建立的类,但该类又不符合要求,就可以使用适配器来完成。
注意事项
在设计之初不要考虑适配器。这个模式的主要场景是在扩展应用时使用。
类适配器:
通过继承方式实现的适配器
对象适配器:
通过对象层次的关联关系实现的适配器
对象适配器与类适配器的区别
类适配器是类间继承,对象适配器是对象的合成关系,也可以说是类的关联关系。实际使用过程中,通过对象适配器方式会做到更易扩展,推荐使用。
参考资料:《设计模式之禅》