7.Adapter适配器(结构型模式)
适配(转换)的概念无处不在
适配,即在不改变原有实现的基础上,将原先不兼容的接口转换为兼容的接口。
Motivation
在软件系统中,由于应用环境的变化,常常需要将 一些现存的对象 放在新的环境
中应用,但是新环境要求的解决是这些现存对象所不满足的。
如果应对这种 迁移的变化?如果既能利用现有对象的良好接口,同时有能满足新的
应有环境所要求的接口?
Intent
将一个类的接口转换为客户希望的另外一个接口。Adapter模式使得原来由于接口
不兼容而不能再一起工作的那些可以一起工作。
Adapter模式的几个要点
。Adapter模式主要应用于 希望复用一些现存的类,但是接口又与复用环境要求不一致的情况
,在遗留代码复用,类库迁移等方面非常有用。
。Gof23定义了两种Adapter模式的实现结构;对象适配器和类适配器。但类适配器采用
多继承的实现方法,带来的不良耦合。所以一般不推荐。对象适配器采用对象组合的方式
,更符合松耦合精神。
。Adapter模式可以实现非常灵活,不必拘束于Gof23中定义的两种结构。
例如,完全可以将Adapter模式中的 现存对象作为新的接口方法参数,来达到适配器
的目的。
。Adapter模式本身要求我们尽可能地使用 面向接口的编程 风格,这样才能在后期很方便
的适配器。
方法的参数,返回类型,变量,局部变量,在使用的时候,尽量声明为接口。
模式的应用是依据具体的应用环境。 context。
OO:把稳定和不稳定的隔离开。