定义

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

优点

策略模式提供了管理相关的算法族的办法,策略模式提供了可以替换继承关系的办法,使用策略模式可以避免使用多重条件转移语句

组成

抽象策略角色: 策略类,通常由一个接口或者抽象类实现 具体策略角色:包装了相关的算法和行为 环境角色:持有一个策略类的引用,最终给客户端调用

UML 图

缺点

  1. 客户端必须知道所有的策略类,并自行决定使用哪一个策略类。这就意味着客户端必须理解这些算法的区别,以便适时选择恰当的算法类。换言之,策略模式只适用于客户端知道所有的算法或行为的情况。
  2. 策略模式造成很多的策略类,每个具体策略类都会产生一个新类。有时候可以通过把依赖于环境的状态保存到客户端里面,而将策略类设计成可共享的,这样策略类实例可以被不同客户端使用。换言之,可以使用享元模式来减少对象的数量。

results matching ""

    No results matching ""