随笔-1  评论-2  文章-6  trackbacks-0
Strategy--定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。

参与者

Strategy
  •  -- 定义所有支持的算法的公共接口。Context使用这个接口来调用某ConcreteStrategy定义的算法。
ConcreteStrategy(具体策略)
  •  -- 以Strategy接口实现英雄模范具体算法。
Context(上下文)
  • --用一个ConcreteStrategy对象来配置。
  • --维护一个对Strategy对象的引用。
  • --可定义一个接口来让Strategy访问它的数据。

适用性
  1. 当存在以下情况时使用Strategy模式
  2. 许多相关的类仅仅是行为有异。“策略”提供了一种用多个行为中的一个行为来配置一个类的方法。
  3. 需要使用一个算法的不同变体。
  4. 算法使用了客户不应该知道的数据。可使用策略模式以避免暴露复杂的、与算法相关的数据结构。



posted on 2008-01-23 10:52 Sam Wang 阅读(275) 评论(2)  编辑  收藏 所属分类: UML

评论:
# re: Strategy(策略)模式 2008-03-12 10:43 | gembin
请问这个UML图用什么画的  回复  更多评论
  
# re: Strategy(策略)模式 2008-03-13 09:39 | Sam Wang
这是NetBeans自带的UML模块做的。
您可以在这里免费下载:http://download.netbeans.org/netbeans/6.0/final/
创建一个类图后,点击鼠标右健,选择“应用设计模式”,在项目中选择“Gof Design Patterns”,就可以在设计模式中选择您想要的模式了。  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: