定义: 将一个类的接口变换成客户端所期待的另一种接口, 从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作.
通俗的说, 就是有 A、B两个接口,
现在要求把A和B安装在一起使用, 两者的接口不一致, 怎么办? 引入一个物体C, 如下图:
引入C物体后, C适应了A的接口, 同时也适应了B的接口, 三者就可以进行组合了
其中的C物体就叫做适配器
适配器模式的类图如下:
其中各个角色:
大致代码如下:
适配器模式的优点:
适配器模式的使用场景:
适配器的使用场景只要记住一点就够了: 你有动机修改一个已经投产中的接口时, 适配器模式可能是最适合你的模式. 比如系统扩展了, 需要使用一个已有或新建立的类, 但这个类有不符合系统的接口等
适配器模式最好在详细设计阶段不要考虑它, 它不是为了解决还在开发阶段的问题, 而是解决正在服役的项目问题, 没有一个系统分析师会在详细设计的时候考虑使用适配器模式, 这个模式的主要场景是扩展应用中.
有时源角色并不单单是一个类, 可能是多个类, 这时使用继承明显不行, 因为java并不支持多继承, 这时可以使用类关联等方法, 只要适配器模式的思想不变, 如何实现有多种方法
适配器模式又叫做变压器模式, 也叫做包装模式(装饰模式也叫做包装模式)
适配器模式是一个补偿模式, 或者说是一个"补救"模式, 通常用来解决接口不相容的问题, 在百分之百的完美设计中是用不到的.