设计模式--行为型-Strategy(策略)
来源:互联网 发布:相机驱动源码 编辑:程序博客网 时间:2024/04/29 00:19
设计模式--行为型-Strategy(策略)
1. 意图
定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。
2.结构图
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();};
0 0
- 设计模式--行为型-Strategy(策略)
- [设计模式-行为型]策略模式(Strategy)
- 设计模式(十三)策略模式(Strategy)-行为型
- 设计模式(4)-行为型-策略模式(Strategy)
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- 设计模式--策略模式Strategy(行为型)
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- 设计模式-行为型- 策略模式(Strategy)
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
- hdu 4417 Super Mario (树状数组)
- 进入PE系统后找不到硬盘该怎么办?
- 性能loadrunner--web_reg_save_param
- C# saveFileDialog的用法
- POJ 1068:Parencodings:模拟水题
- 设计模式--行为型-Strategy(策略)
- 屏幕成为下一代笔记本电脑和平板产品升级的焦点
- Trinity的安装与使用
- UVA OJ: 414 - Machined Surfaces
- 代码需要不断进化和改变
- ifconfig命令
- 【算法】递归求解几类排列组合问题
- julia访问rest url
- QXmpp源码 GuiClient