设计模式--行为型-Strategy(策略)
2014-04-13 10:24
253 查看
设计模式--行为型-Strategy(策略)
1. 意图
定义一系列的算法,把它们一个个封装起来,
并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。
2.
结构图
[align=left] [/align]
3. 简述
这是个极其常见的模式,就是利用了面向对象语言的多态性。当代码中出现大量的条件语句时,比如
switch(_breakingStrategy)
{
case SimpleStrategy:
ComposeWithSimpleCompositor();
break;
caseTexStrategy:
ComposeWithTexCompositor();
break;
…
}
这个类写了很多不同的处理方法,新增方法,需要重新定义该类。这时就可以用Strategy模式消除case。并且提高可维护性。
Strategy模式的一个重要的应用是在MVC模式。MVC中的View和Controller就是用的Strategy模式。一个View可以对应多种Controller。每个Controller实现一种响应方式,View就相当于Strategy模式中的Context。
4.
实例代码
class Context { Strategy* _strategy; public: Context(Strategy*); void Process() { … _strategy-> Algorithm(); … } }; class Strategy { Strategy(); public: virtual void Algorithm(); }; class ConcteteStrategyA : public Strategy { public: void Algorithm(); }; class ConcteteStrategyB : public Strategy { public: void Algorithm(); };
相关文章推荐
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- 设计模式--策略模式Strategy(行为型)
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- 设计模式-策略模式---Strategy(对象行为型)
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- 行为型设计模式之模板方法(TEMPLATE METHOD)模式 ,策略(Strategy )模式
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- 设计模式18---设计模式之策略模式(Strategy)(行为型)
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- Strategy策略设计模式(对象行为型)
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- [设计模式-行为型]策略模式(Strategy)
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- 转:设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- [设计模式-行为型]策略模式(Strategy)
- 设计模式(Design Pattern) - 行为型模式(Behavioral Pattern) - 策略模式(Strategy) - Java实现
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)