读《大话设计模式》之适配器模式

一、模式概述

将一个类的接口转换成客户希望的另外一个接口

适配器的意思就是使得一个东西适合另一个东西的东西。如,不同国家有不同标准的电压(110V、220V),于是就需要电源适配器。

UML 图

适配器模式结构图
Target:客户所期待的接口。(目标可以是具体的或抽象的类,也可以是接口)
Adaptee:需要适配的类。
Adapter:适配器类。(通过在内部包装一个 Adaptee 对象,把源接口转换成目标接口)
Client:客户端。

二、模式优缺点

优点

能解决接口不匹配的问题,客户端能统一调用统一接口。

缺点

不够优雅,实则是无奈之举,有“亡羊补牢”的感觉。

三、模式适用场景

1.系统的数据和行为都正确,但接口不符的情景。 2.希望复用一些类,但接口又与复用环境要求不一致的情景。 3.双方都不太容易修改接口的情景。

四、模式总结

接口统一实则应该在设计阶段就完成。接口不统一,首先应该考虑重构统一接口,在双方都不太容易修改的时候再使用适配器模式适配。事后控制不如事中控制,事中控制不如事前控制。(扁鹊三兄弟的故事)