Strategy--定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。
参与者
Strategy
- -- 定义所有支持的算法的公共接口。Context使用这个接口来调用某ConcreteStrategy定义的算法。
ConcreteStrategy(具体策略)
- -- 以Strategy接口实现英雄模范具体算法。
Context(上下文)
- --用一个ConcreteStrategy对象来配置。
- --可定义一个接口来让Strategy访问它的数据。
适用性
- 当存在以下情况时使用Strategy模式
- 许多相关的类仅仅是行为有异。“策略”提供了一种用多个行为中的一个行为来配置一个类的方法。
- 需要使用一个算法的不同变体。
- 算法使用了客户不应该知道的数据。可使用策略模式以避免暴露复杂的、与算法相关的数据结构。
posted on 2008-01-23 10:52
Sam Wang 阅读(275)
评论(2) 编辑 收藏 所属分类:
UML