您的位置:首页 > 其它

策略模式

2011-11-24 16:16 141 查看
策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用算法,减少了各种算法类与使用算法类之间的耦合。

// Strategy.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
using namespace std;

class IStrategy
{
public:
virtual void algorithmInterface()= 0;
};

class StrategyA: public IStrategy
{
void algorithmInterface()
{
cout<< "Strategy A algorithmInterface"<<endl;
}
};

class StrategyB: public IStrategy
{
void algorithmInterface()
{
cout<<"Strategy B algorithmInterface"<<endl;
}
};

class StrategyContext
{
public:
void setStrategy( IStrategy *stragety)
{
myStrategy = stragety;
}
void executeStrategy()
{
myStrategy->algorithmInterface();
}

private:
IStrategy *myStrategy;
};

int _tmain(int argc, _TCHAR* argv[])
{
StrategyContext context;

StrategyA * stragetyA = new StrategyA();
context.setStrategy( stragetyA );
context.executeStrategy();
delete stragetyA;

StrategyB * stragetyB = new StrategyB();
context.setStrategy( stragetyB );
context.executeStrategy();
delete stragetyB;

system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: