适配器模式:从理论到Objective - C实现
1. 类适配器与对象适配器
类适配器和对象适配器是实现适配器模式的不同方式,但目的相同。以下是它们的特征对比:
| 特征 | 类适配器 | 对象适配器 |
| ---- | ---- | ---- |
| 适配方式 | 仅适配单个具体的被适配类到目标类 | 可适配多个被适配类及其所有子类 |
| 重写行为 | 通过子类化可轻松重写被适配类的行为 | 重写被适配类的行为较困难,需引用子类对象而非被适配类本身 |
| 指针使用 | 仅需一个适配器对象,无需额外指针间接访问被适配类 | 需要额外指针间接访问被适配类并适配其行为 |
显然,委托模式属于对象适配器类别。
2. 何时使用适配器模式
当遇到以下情况时,可考虑使用适配器模式:
- 现有类的接口与所需接口不匹配。
- 希望有一个可重用的类,能与可能不兼容接口的其他类协作。
- 需要适配一个类的多个不同子类,但让每个子类都继承类适配器不切实际,此时可使用对象适配器(即委托)来适配其父类的接口。
3. 委托与适配器模式的关系
在Cocoa Touch框架中,“委托”是委托模式的一种形式。委托模式曾是“四人组”书籍中对适配器模式进行分类的灵感来源之一。适配器模式将一个类的接口转换为客户端期望的另一个接口,使原本因接口不兼容而无法协作的类能够一起工作。在Cocoa Touch框架中,客户端是框架类,“目标”是委托协议,实现该协议的具体类就是适配器,而需要适配的类则是应用中的其他类,所以委托模式实际上就是适配器模式。
不过,
超级会员免费看
订阅专栏 解锁全文
84

被折叠的 条评论
为什么被折叠?



