设计模式——策略模式(Strategy)
来源:互联网 发布:数据库 防黑客 编辑:程序博客网 时间:2024/06/15 00:34
定义好各个阶段的工作,然后按流程去走。
举一个例子:
文件操作有:打开,处理,关闭。
文件操作流程:打开——>处理——>关闭
CFileContext:操作的控制控制类
#include "IStrategy.h"class CFileContext{public:CFileContext(IStrategy* strategy);~CFileContext(void);void Operate();private:IStrategy *mp_strategy;};
CFileContext::CFileContext(IStrategy *strategy){mp_strategy = strategy;}CFileContext::~CFileContext(void){delete mp_strategy;}void CFileContext::Operate(){mp_strategy->Operate();}
IStrategy:各个操作的接口
#pragma onceclass IStrategy{public:IStrategy(void);virtual ~IStrategy(void);virtual void Operate() = 0;};
#include "IStrategy.h"IStrategy::IStrategy(void){}IStrategy::~IStrategy(void){}
CDealFileOpen,CDealFileWork,CDealFileClose
是对IStrategy的实现,分别实现打开,处理,关闭操作。
#pragma once#include "IStrategy.h"class CDealFileOpen : public IStrategy{public:CDealFileOpen(void);~CDealFileOpen(void);void Operate();};
<pre name="code" class="cpp">#pragma once#include "IStrategy.h"class CDealFileWork: public IStrategy{public:CDealFileWork(void);~CDealFileWork(void);void Operate();};
#pragma once#include "IStrategy.h"class CDealFileClose: public IStrategy{public:CDealFileClose(void);~CDealFileClose(void);void Operate();};
#include "DealFileOpen.h"#include <iostream>using std::cout;using std::endl;CDealFileOpen::CDealFileOpen(void){}CDealFileOpen::~CDealFileOpen(void){}void CDealFileOpen::Operate(){cout<<" Open File.\n "<<endl;}
程序运行结果:
Open File.
Start to Work.
Close File.
- 设计模式——策略模式(Strategy)
- 设计模式——Strategy策略模式
- JAVA设计模式—策略模式(Strategy)
- java设计模式——策略者模式(strategy)
- 设计模式——策略模式(Strategy)
- java设计模式13——策略模式(Strategy)
- 走进设计模式之——策略模式(Strategy)
- 设计模式——策略模式(Strategy) 笔记
- 【设计模式】——策略模式(Strategy)
- C++ 设计模式 —— 策略模式(Strategy)
- 设计模式 —— 策略模式(Strategy Pattern)
- 设计模式 II ——策略模式(Strategy)
- Java设计模式——策略模式(Strategy Pattern)
- 设计模式——策略模式(Strategy Pattern)
- Java设计模式——策略模式(Strategy Pattern)
- 设计模式—策略模式(Strategy Pattern)
- Java设计模式 —— 策略(Strategy)
- Java设计模式——策略(Strategy)
- 计算s=1-1/2^1+1/2^2-…+1/2^8
- C# 打印Label
- UVA 10912 Simple Minded Hashing
- 书评:使用Android SDK构建应用,第2版
- Quartz 2D编程指南(3) - 路径(Paths)【上】
- 设计模式——策略模式(Strategy)
- ros中的一些传感器
- map容器
- Android百度地图 - 路径规划(驾车、步行和公交线路搜索)
- JS的Document属性和常用方法
- Problem 2088 最长队名 字典序,qsort考察
- javascript 学习笔记3-构造函数、类和原型
- java基础学习day08总结
- new和delete重载