11、适配器模式:从理论到Objective - C实现

适配器模式:从理论到Objective - C实现

1. 类适配器与对象适配器

类适配器和对象适配器是实现适配器模式的不同方式,但目的相同。以下是它们的特征对比:
| 特征 | 类适配器 | 对象适配器 |
| ---- | ---- | ---- |
| 适配方式 | 仅适配单个具体的被适配类到目标类 | 可适配多个被适配类及其所有子类 |
| 重写行为 | 通过子类化可轻松重写被适配类的行为 | 重写被适配类的行为较困难,需引用子类对象而非被适配类本身 |
| 指针使用 | 仅需一个适配器对象,无需额外指针间接访问被适配类 | 需要额外指针间接访问被适配类并适配其行为 |

显然,委托模式属于对象适配器类别。

2. 何时使用适配器模式

当遇到以下情况时,可考虑使用适配器模式:
- 现有类的接口与所需接口不匹配。
- 希望有一个可重用的类,能与可能不兼容接口的其他类协作。
- 需要适配一个类的多个不同子类,但让每个子类都继承类适配器不切实际,此时可使用对象适配器(即委托)来适配其父类的接口。

3. 委托与适配器模式的关系

在Cocoa Touch框架中,“委托”是委托模式的一种形式。委托模式曾是“四人组”书籍中对适配器模式进行分类的灵感来源之一。适配器模式将一个类的接口转换为客户端期望的另一个接口,使原本因接口不兼容而无法协作的类能够一起工作。在Cocoa Touch框架中,客户端是框架类,“目标”是委托协议,实现该协议的具体类就是适配器,而需要适配的类则是应用中的其他类,所以委托模式实际上就是适配器模式。

不过,

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值