定义
适配器模式是指把一个类的接口适配为客户所期望的另一种接口。这样一来,Adapter模式使得原本因为接口不兼容而不能在一起工作的类可以在一起工作,所以事实上Adapter在其中起到一种桥梁的作用。
解决的实际问题
适配器模式是为了解决什么问题?
比如日常生活中的三相插孔适配为二相插孔,中间做这个转换的物件可以称之为适配器,它解决了我们因为插孔不适配而无法使用的问题,诸如此类例子很多,在此不一一列举。
模式中涉及角色
- 目标接口(Target):客户所期望的接口
- 被适配的类(Adaptee)
- 适配器(Adapter):包装Adaptee以完成到Target的转换
实现方式
- 类适配
- 对象适配
类适配
采用继承的方式:把Adaptee的行为继承过来再加以包装开放为Target的接口
对象适配
适用对象组合方式:将Adaptee对象注入到适配器中再加以包装开放为Target的接口,即使用委派关系来与Adaptee进行关联
适配器优缺点
优点
1. 相对于客户端Adaptee是透明的,客户端只需面向Adapter,适配细节不需要client关心
2. 将client与adaptee实现解耦,adapter来做中间适配,adaptee不需要与client硬融合
缺点
1. 过多使用适配器,或使用不当会导致系统层次划分零乱,反而不利于整体把控与维护
2. Adapter的接口要规划合理,如果随便变更将需要重新适配,而重新适配的过程比较复杂,无疑加重时间上的成本!