设计模式<结构型> | 适配器模式
适配器模式(Adapter Pattern)
将不兼容的接口转换成可以兼容的接口,有一个经常被拿来解释它的例子,就是 USB 转接头充当适配器,把两种不兼容的接口,通过转接变得可以一起工作。
结构图:
角色:
- 目标(Target),定义把其他类转换为哪种接口。
- 源目标(Adaptee),需要被适配的类。
- 适配器(Adapter),通过继承或是类关联的方式把源角色转换为目标角色。
适用场景:
- 封装有缺陷的接口设计。
- 替换依赖的外部系统。
- 兼容老版本接口
- 适配不同格式的数据
优点:
- 符合开闭原则,可以不修改现有客户端代码的情况下在程序中添加新类型的适配器。
- 符合单一原则,将接口或数据转换代码从程序主要业务逻辑中分离到适配器中。
缺点
- 代码整体复杂度增加,因为需要新增一系列接口和类,有时直接更改服务类使其与其他代码兼容会更简单。
代码(C#)
1 |
|
最后
代理、桥接、装饰、适配模式的区别
- 代理模式在不改变原始类接口的条件下,为原始类定义一个代理类,主要目的是控制访问,而非加强功能,这是它跟装饰器模式最大的不同。
- 桥接模式的目的是将接口部分和实现部分分离,从而让它们可以较为容易、也相对独立地加以改变。
- 装饰者模式在不改变原始类接口的情况下,对原始类功能进行增强,并且支持多个装饰器的嵌套使用。
- 适配器模式是一种事后的补救策略。适配器提供跟原始类不同的接口,而代理模式、装饰器模式提供的都是跟原始类相同的接口。
设计模式<结构型> | 适配器模式
http://example.com/posts/39554.html