**亦称:**封装器模式、Wrapper、Adapter
问题
- 接口数据格式不兼容
- 可能没有接口的代码,无法修改接口
解决方案
适配器模式结构
实现
- RoundHole 无法修改的服务类
- RoundPeg 适配服务类的类
- SquarePeg 未适配服务类的类
- SquarePegAdapter 创建遵循客户端接口的适配器类。在适配器类中添加一个成员变量用于保存对于服务对象的引用。对getRadius方法进行适配,使SquarePeg也能用
- Client 描述客户端如何与服务交互。
优缺点
<aside>
✅ 单一职责原则
</aside>
<aside>
✅ 开闭原则
</aside>
<aside>
❌ 代码复杂度提升
</aside>
关系
- 适配器模式为已有对象的接口进行修改,装饰模式在不改变对象接口的情况下为对象提供增强的接口,代理模式与装饰模式类似,但装饰模式强调增强,代理模式强调控制