
模式名称: 适配器-Adapter,又称包装器-Wrapper类型: 结构型问题-使用场景: 适配器可以让原本由于接口不兼容而不能一起工作的类可以重新一起工作解决方案:使用适配器对象对原本的类进行继承或者对类的对象进行组合并调用接口两种方式效果:在无需知晓,且不改变已有类的源码的前提下,使系统能够耦合在一起进行工作
实现方式Adapter主要有两种实现方式。
继承
组合
两种方式各有利弊,虽然可能组合方式居多
应用举例现在我们要做一个绘图编辑器,我们用Shape抽象类规定了子类控件的行为,而我们又有了一个成品的工具类TextView,它本身提供了显示文本的接口,但我们不知道它的源码,或者不愿意修改它的源码,因此我们无法让TextView满足Shape的规定接口要求,二者无法直接一起工作。
所以为了复用TextView,我们可以选择使用适配器模式,构造一个TextShape子类继承自Shape,同时组合了一个TextView实例化出的对象text,这样也可以调用TextView里的接口。这样通过TextShape作为适配器,我们成功地让接口能够间接兼容了。
下图为例子的类图, ...

















