策略模式

策略模式定义

定义一系列的算法,将每个算法封装起来,并且让它们可以相互的替换。算法的变更对于客户端而言是无感知的。

策略模式详解

使用场景

  1. 一个系统里面由许多行为相同的类,就可以用策略模式将这些类管理起来。
  2. 一个系统中某个方法需要动态的在击中方法中选择一种。

图解

19 策略模式流程图.png

策略模式优缺点

优点

  1. 提供了管理相关的算法族的办法。
  2. 提供了可以替换继承关系的办法。
  3. 避免使用多重条件转移语句。

缺点

  1. 客户端要了解所有的策略类,并且自己决定使用哪个策略类,如果策略类一大,对客户端而言就是一个弊端。

策略模式总结

设计模式中策略模式是对算法的封装,它把算法的责任和算法本身区分开,委派给不同的对象管理,在策略模式中应该由客户端自己决定在什么情况下使用什么具体策略角色。