11、适配器模式:从理论到实战的全面解析

适配器模式:从理论到实战的全面解析

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

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

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

2. 何时使用适配器模式

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值