适配器模式

1. 环境

  • 游戏中的坐骑——五彩神鹿
  • 第一世界它的行走方式为奔跑,第二世界它的行走方式为飞!

2. 问题

  • 想使用一个已经存在的类, 但他的接口不符合需求。
  • 将一个类的接口转换成客户希望的另外一个接口 使得原本由于接口不兼容而不能一起工作的那些类可以一起工作

3. 适配器模式介绍

3.1. 适配器模式中有以下的四种角色:

  • 目标(target):定义客户端使用的与特定领域相关 的接口。
  • 被适配者(adaptee):定义了一个已经存在的接口 ,这个接口需要匹配。
  • 适配者(adapter):对Adaptee的接口与target的接 口进行适配。
  • 客户端(Client):与符合target接口的对象协同。

3.2. 模式分类

类的适配器模式(采用继承实现)

success
图:success

对象适配器(采用对象组合方式实现)

combine
图:combine

4. 适配器模式实现步骤

类适配器

  • 确定目标接口
  • 确定被适配者
  • 创建适配器(继承自被适配者,实现目标接口)

对象适配器

  • 确定目标接口
  • 确定被适配者
  • 创建适配器(拥有被适配者的对象,实现目标接口)

4.1. 步骤一:被确定目标接口

step1
图:step1

4.2. 步骤二:被确定被适配者

step2
图:step2

4.3. 步骤三

  • 创建适配器(类适配器)

step3_1 step3_2

  • 创建适配器(对象适配器)

step3_3 step3_4

5. 类适配器和对象适配器哪个更好

  • 类适配器采用“多继承”的实现方式,带来了 不良的高耦合
  • 对象适配器采用“对象组合”的方式,更符合 松耦合精神
  • 类适配器无法面对多个被适配对象

合成复用原则

© 2019 冯世祺. All rights reserved.