ad

读懂《Java架构之完美设计 实战经典》_为更好架构做准备_2.5.7 适配器模式

admin 86 2023-10-26

【摘要】 本书摘自《Java架构之完美设计 实战经典》一书中第2章,第5节,由颜廷吉编著。

2.5.7 适配器模式

读懂《Java架构之完美设计 实战经典》_为更好架构做准备_2.5.7 适配器模式

1.概述

适配器模式是将一个类的接口转换成用户希望的另一种接口。在实际应用的条件下,系统提供的数据和行为都是正确的,但是因接口不符合要求而无法使用时,就需要一个适配器 将这个接口中不符合的数据和行为利用起来。这样不需要修改大量的代码就能达到使用要 求,从而提高代码的重用性。

2.类图

3. 代码示例

【案例4——适配器模式】

适配器的实现方式有类适配器和对象适配器两种。类适配器使用对象继承的方式,属于 静态形式;对象适配器使用对象组合的方式,属于动态组合形式。

背景:配套代码用一个适配器将插头输出的220V 转变成110V 为例,分别实现类适配 器与对象适配器

(1)类适配器

由于适配器直接继承了 Adaptee, 使得适配器不能和 Adaptee的子类一起工作。但适配 器可以重定义 Adaptee的部分行为,相当于子类覆盖父类的部分实现方法。

(2)对象适配器

一个对象适配器可以把多种不同的源适配到同一个目标。换言之,同一个适配器可以把 源类和它的子类都适配到目标接口。因为对象适配器采用的是对象组合的关系方式,只要对 象类型正确即可。要重定义Adaptee的行为比较困难,这种情况下,需要定义 Adaptee 的子 类来实现重定义,然后让适配器组合子类。虽然重定义 Adaptee的行为比较困难,但是想要 增加一些新的行为则比较方便,而且新增加的行为可同时适用于所有的源。

4.优缺点

适配器模式的优点是:

(1)更好的重用性

系统需要使用现有的类,但其接口不符合系统需要,那么通过适配器模式就可以让这些 功能得到更好的重用。

(2)系统透明简单

客户端可以调用同一接口,因而对客户端来说是透明的。

(3)更好的扩展性

在实现适配器功能时,还可以调用自己开发的功能,从而自然地扩展系统的功能。

(4)降低耦合性

将目标类和适配者类进行解耦,通过引入一个适配器类重用现有的适配者类,而无须修 改原有代码。

(5)更好地遵循开闭原则

同一个适配器可以把适配者类和它的子类都适配到目标接口。可以为不同的目标接口实 现不同的适配器,而不需要修改待适配的类。

适配器模式的缺点是:

过多使用适配器,会让系统非常凌乱,不易对整体进行把握。

5. 适用场景

1)系统需要重用现有类,而该类的接口不符合系统需求,可使用适配器模式,使得原 本由于接口不兼容而不能一起工作的那些类一起工作。

2)多个组件功能类似,但接口不统一且可能需经常切换时,可使用适配器模式,使得 客户端可以用统一的接口使用它们。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 [email protected] 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:读懂《Java架构之完美设计 实战经典》_为更好架构做准备_1.4 架构师
下一篇:读懂《Java架构之完美设计 实战经典》_为更好架构做准备_2.4.3 序列图
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×