设计模式-适配器模式《八》
2019-01-01 本文已影响16人
liyoucheng2014
何为适配器模式
定义:将一个类的接口转换成客户希望的另外一个接口。用于连接两种不同种类的对象,使其毫无问题地协同工作。
主要作用:是把适配者的行为传递给管道另一端客户端。
基本上有两种实现适配器的方式,
- 第一种是通过继承来适配两个接口,称为类适配器(通过多重继承实现),但是在Objective-C中实现类适配器,通过协议Protocol。静态关系图如下
-
第二种称为对象适配器,与类适配器不同,对象适配器不继承被适配者,而是组合了一个对它的引用。静态关系图如下
类适配器 | 对象适配器 |
---|---|
只针对单一的具体Adapter类,把Adapter适配到Target | 可以适配多个Adapter及其子类 |
易于重载Adapter的行为,因为是通过直接的子类化进行的适配 | 难以重载Adapter的行为,需要借助于子类的对象而不是Adapter本身 |
只有一个Adapter对象,无需额外的指针间接访问Adapter | 需要额外的指针以间接访问Adapter并适配其行为 |
何时使用适配器模式
1、 已有类的接口与需求不匹配。
2、 想要一个可复用的类,该类能够同时可能带有不兼容接口的其他类协作。
3、需要适配一个类的几个不同子类,可是让每一个子类去子类化一个类适配器又不现实。那么可以是用对象适配器(也叫委托)来适配其父类的接口。
使用步骤
1、 创建抽象适配器对象
2、 适配器与视图层建立输出联系
3、 适配器与数据层建立输入联系
优缺点
- 优点:降低耦合度
- 缺点:不理解适配器模式,很难看懂
注:建议使用对象适配器模式,便于以后维护
注:充电器例子