理解设计模式(策略)

  策略模式: 环境驱使程序选择策略,策略决定程序行为。

特定环境

  • 一个系统需要动态地在几种算法中选择一种

  • 算法要对使用者透明时

  • 一个类含多个逻辑流程,而实际执行时,只选择其中一种

一类问题

需要将同一流程下的多个分支逻辑,封装为对象

解决方案

策略模式,有3个角色:

  • : 环境类 Context, 封装策略接口引用,执行时指定采用策略,具体类实现

  • :策略接口 Strategy, 策略行为规范,一般由抽象类或接口实现

  • : 具体策略接口 ConcreteStrategy, 实现策略接口,由具体子类实现

优缺

优点:

  • 避免继承,但复用原有代码
    因为,通过继承原有类代码,扩展或修改原有逻辑,也可实现不同环境下,进入不同的逻辑流

  • 避免程序使用多重条件转移语句,使系统易于扩展

  • 避免算法和环境类的耦合

缺点:
具体策略类过多时,增加系统维护负担,此时要考虑优化

参考

设计模式随笔系列:鸭子-策略模式(Strategy)[原], 作者: fejustin

设计模式 ( 十八 ) 策略模式Strategy(对象行为型), 作者: 真实的归宿

posted @ 2015-11-21 21:44  coolsoul  阅读(157)  评论(0编辑  收藏  举报