首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

java设计形式——策略者模式(strategy)

2013-01-27 
java设计模式——策略者模式(strategy)今天学习了策略者模式,在此做下学习笔记,有什么问题请大家帮忙指出来,

java设计模式——策略者模式(strategy)

今天学习了策略者模式,在此做下学习笔记,有什么问题请大家帮忙指出来,不胜感激,谢谢~

策略者模式(Strategy)是一种定义一系列算法的方法。从概念上来看,所有这些算法完成的都是 相同的工作,只是实现不同的方式调用所有的算法,减少各种算法类与使用算法类之间的耦合[DPE] 策略者模式的Strategy类层次为Context定义了一系列的可供重用的算法或行为。继承有助于析取出 这些算法中的公共功能[DP]。

当不同的行为放在一个类时,该类就包含了很多不同的算法,就需要要if或者switch语句来选择适应的行为,因此,策略者模式选择将这不同算法的类封装为不同的类,每一个算法对应一个类来消除分支判断,这样可以提高系统的维护。

就商场收银系统来说,需要有很多种情况,有时候商场要做活动打折,有时候是满100送10,有时候是满一百送100积分等等一系列情况,为了避免大量的判断需要把各种不同的算法放在各自不同的类。“策略者模式封装了变化”——策略者模式就是用来封装算法的,但是在实践中,我们发现可以用它来封装几乎任何类型的规则,只要在分析过程中听到需要在不同时间应用不同的业务规则,就可以考虑使用策略模式处理这种变化的可能性。

uml图如下:

java设计形式——策略者模式(strategy)java设计形式——策略者模式(strategy)

java设计形式——策略者模式(strategy)

示例代码如下:

StrategyDemo主类:

 

热点排行