首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

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

2012-11-04 
用代码和UML图化解设计模式之《策略模式》什么是策略模式,用我个人的定义就是利用了面向对象的多态等特性,通

用代码和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

热点排行