适配器模式是很常用的设计模式,它是包装模式的一种,也就是把源角色做一层包装,使其满足目标角色的要求。解决不同系统、层次对接时经常会用到它。
定义
将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配的而无法在一起工作的两个类能够在一起工作。
适配器模式有两种:类适配器和对象适配器。它们之间最大的区别在于类适配器使用类间继承的方式,对象适配器使用对象的合成,或者说类的关联关系。相对来说,对象适配器在设计时会更加灵活。
类适配器的通用类图如下:

对象适配器的通用类图如下:

在上述类图中,有三种角色:Target目标角色、adaptee源角色和adapter适配器角色。
目标角色定义我们期望的接口,是一个已经在运行的方法,类适配器做的即是复写接口方法去实现它。
源角色也是一个正在运行的类。而适配器角色会把源角色做一层包装,使其满足目标角色的要求。
优点
- 可以让两个没有关系的类一起运行
- 增加类的透明性,提升类的复用度
- 灵活性好
使用场景
适配器模式是为了解决运行时项目而产生的,当需要修改一个已经运行的接口时,就适合使用适配器模式。
参考:
设计模式之禅