设计模式——策略模式(Strategy)
2013-11-04 20:44
393 查看
定义好各个阶段的工作,然后按流程去走。
举一个例子:
文件操作有:打开,处理,关闭。
文件操作流程:打开——>处理——>关闭
CFileContext:操作的控制控制类
IStrategy:各个操作的接口
CDealFileOpen,CDealFileWork,CDealFileClose
是对IStrategy的实现,分别实现打开,处理,关闭操作。
程序运行结果:
Open File.
Start to Work.
Close File.
举一个例子:
文件操作有:打开,处理,关闭。
文件操作流程:打开——>处理——>关闭
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 once class 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.
相关文章推荐
- 深入浅出设计模式(九):12.装饰模式(Decorator) 13.桥模式(Bridge)14.策略模式(Strategy)
- Strategy 设计模式 策略模式 超靠谱原代码讲解
- 设计模式-策略模式(Strategy)
- Head First 设计模式 C++实现-Strategy(策略模式)
- Java设计模式透析之 —— 策略(Strategy)
- C++设计模式:策略模式(Strategy)
- 游戏项目中运用到的设计模式(二)...策略模式(strategy)(《重构-改善既有代码的设计》读后做)
- 设计模式----Strategy(策略)
- [设计模式-行为型]策略模式(Strategy)
- 设计模式(4)-行为型-策略模式(Strategy)
- 23种设计模式之策略模式(Strategy)
- 设计模式之——策略模式(Strategy)
- 设计模式---策略模式Strategy(对象行为型)
- 设计模式之策略模式(strategy)
- 设计模式读书笔记:Strategy(策略)
- Strategy(策略)设计模式
- 设计模式之策略模式Strategy
- 设计模式之(一)——策略模式(Strategy Pattern)
- 设计模式5--策略模式(Strategy)