适配器模式 gaunthan Posted on Jan 19 2017 ? Design Patterns ? > **适配器模式**(Adapter Pattern)将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。 <!--more--> ## 概述 在生活中适配器随处可见。拿起你的手机充电器,你就会看到上面贴着“电流适配器”。没错,适配器是一个中间层,它把两个本来无法套接的东西连接起来了。就如经常看到的接口转换器,如VGA转HDMI、串口转并口等等。有些适配器只是简单地把请求进行转发,而有一些则还需要在内部进行复杂的转换工作。 下面是示意图:  客户使用适配器的过程如下: 1. **客户**(client)通过目标接口调用**适配器**(adapter)的方法,对适配器发出请求; 2. 适配器使用**被适配者**(adaptee)接口,把请求转换成被适配者的一个或多个调用接口; 3. 客户接收到调用的结果,但无法察觉这一切是适配器在起作用。 ## 结构 ### 对象适配器 适配器模式的类图如下所示:  其中,有如下关系: 1. 客户只看得到目标接口。 2. 适配器实现目标接口。 3. 适配器与被适配者组合。 4. 所有的请求都委托给被适配者。 实际上适配器有两种:对象适配器、类适配器。上面给出的类图就是对象适配器的。 ### 类适配器 类适配器的类图如下所示:  类适配器需要多重继承才能实现,因此只在支持多重继承的语言才能实现。看起来和对象适配器很像,唯一的差别就在于适配器继承了*Target*和*Adaptee*,而对象适配器利用组合的方式将请求传送给被适配者。 ## References - 弗里曼弗里曼谢拉贝茨 O'ReillyTaiwan 公司 UMLChina. Head First 设计模式 [M]. 中国电力出版社, 2007. 赏 Wechat Pay Alipay 外观模式 命令模式