读书人

用代码跟UML图化解设计模式之《策略模

发布时间: 2012-11-04 10:42:41 作者: rapoo

用代码和UML图化解设计模式之《策略模式》

什么是策略模式,用我个人的定义就是利用了面向对象的多态等特性,通过一个类来管理实体类的一种编程技巧。

这种模式在项目中是经常用到的。

用代码跟UML图化解设计模式之《策略模式》

通过建模大家可以清晰的看到这些类层次关系。下面就用代码来实现一下。

我使用的是VS2005的,大家可以根据需要修改部分代码。

#include "stdafx.h"#include <iostream>using namespace  std;class Strategy{public:virtual void operate() = 0;};class FirstStrategy:public Strategy{virtual void operate();};void FirstStrategy::operate(){cout<<"FirstStrategy::operate()"<<endl;}class SecondStrategy:public Strategy{virtual void operate();};void SecondStrategy::operate(){cout<<"SecondStrategy::operate()"<<endl;}class Context{public:Context(Strategy* stra);~Context();void Coperate();private:Strategy* m_stra;};Context::Context(Strategy* stra):m_stra(stra){}Context::~Context(){}void Context::Coperate(){m_stra->operate();}int _tmain(int argc, _TCHAR* argv[]){Strategy* firstStra = new FirstStrategy;Context* context ;context =new Context(firstStra);context->Coperate();Strategy* secStra = new SecondStrategy;context =new Context(secStra);context->Coperate();return 0;}

输出结果为

用代码跟UML图化解设计模式之《策略模式》

今天的模式实现完成。

跟多文章欢迎访问:http://blog.csdn.net/wallwind

读书人网 >软件开发

热点推荐