适配器模式
适配器的作用其实就是一个转换头,适配器模式就是将一个类的接口,转换成客户期望的另一个接口,让原本接口不兼容的类可以一起工作,主要功能是进行转换匹配,目的是复用已有的功能
转换接口
核心概念
- 目标角色 Target 所期望得到的接口
- 被适配的角色 Adaptee 目前使用的接口,但是不符合需要,需要进行适配
- 适配器角色 Adaper 适配器,将接口进行转换
1 | public class SimpleControllerHandlerAdapter implements HandlerAdapter { |
还有常见的xxxWrapper类也是适配器的思想
优缺点
优点
- 使用适配器可以重用一个现有的类,以满足客户端的需要,让之前实现的功能得到复用
- 在实现适配器功能时,可以自由的调用自己开发的功能,较自由的进行系统的扩展
缺点
- 过多的使用适配器会使得系统非常凌乱,不适合在系统前期的设计阶段使用,而应该用于后期的补偿机制
使用场景
- 已经存在的类的接口不符合我们的要求
- 想创建一个可以复用的类,这个类可能和一些不兼容的类一起工作,可以使用适配器模式
- 想使用一些已存在的子类,但是不可能对每一个子类都进行适配,可以使用对象适配器
- 适配类的接口以匹配客户端期待的接口