码迷,mamicode.com
首页 > 其他好文 > 详细

理解设计模式(策略)

时间:2015-11-21 22:32:13      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:

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

特定环境

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

  • 算法要对使用者透明时

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

一类问题

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

解决方案

策略模式,有3个角色:

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

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

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

优缺

优点:

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

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

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

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

参考

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

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

理解设计模式(策略)

标签:

原文地址:http://www.cnblogs.com/CoolSoul/p/4984829.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!