策略模式

1. 环境

游戏中武士可以随时更换装备

2. 问题

  • 将每一个一系列的算法封装起来。
  • 而且使它们还可以相互替换。
  • 算法独立于使用它的客户独立变化

3. 详解

3.1. strategy pattern

策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。

strategyalgorithm
图:strategyalgorithm

3.2. 三种角色

  • 抽象策略类(Strategy): 定义所有支持的算法的公共接口。
  • 具体策略类(ConcreteStrategy): 以Strategy接口实现某具体算法。
  • 环境类(Context): 维护一个对Strategy对象的引用。可定义一个接口来让Strategy访问它的数据。

4. 实现

4.1. 步骤

  • 定义抽象策略类
strategydefineinterface
图:strategydefineinterface
  • 实现具体策略类
strategyrealization1
图:strategyrealization1
strategyrealization2
图:strategyrealization2
  • 定义环境类
strategydefinedev1
图:strategydefinedev1
strategydefinedev2
图:strategydefinedev2
© 2019 冯世祺. All rights reserved.