设计模式 - 适配器模式
定义
Convert the interface of a class into another interface clients expect.
Adapter lets classes work together that couldn't otherwise because of incompatible interfaces.
aka:Wrapper
UML
实例
DLL调用、DataAdapter
- 使用某个类,但是其接口与其他代码不兼容。
- 需要复用一些类,处于同一个继承体系,有了额外的方法,但是这些方法不是所有子类所具有的共性。
比较
比较 | 适配器模式 | 备注 |
---|---|---|
桥接模式 | 适配器在已有程序中使用,兼容不同的类 | 通常在开发前期设计,将各个部分独立开来以便开发 |
装饰模式 | 对已有对象的接口进行修改,不支持递归 | 装饰模式是在不改变对象接口的前提下强化对象功能,支持递归组合 |
代理模式 | 适配器能为被封装对象提供不同的接口 | 代理模式为对象提供相同的接口,装饰为对象提供加强的接口 |
外观模式 | 适配器基于已有的接口,通常只针对一个对象 | 外观模式为现有对象定义新接口,作用于整个对象子系统上 |
适配器模式、桥接模式、状态模式、策略模式的接口非常相似,都基于组合模式,即将工作委派给其他对象,不过也各自解决了不同的问题。