Command 模式C++ 代码

2014-11-24 11:37:45 · 作者: · 浏览: 0

[cpp]
#include
#include
#include

using namespace std;

class CommandBase
{
public:
virtual void run()=0;

private:
};

class Command1:public CommandBase
{
public:
Command1(string strName):m_strName(strName){};
void run()
{
cout< }

private:
string m_strName;
};
class Command2:public CommandBase
{
public:
Command2(string strName):m_strName(strName){};
void run()
{
cout< }

private:
string m_strName;
};

class Command3:public CommandBase
{
public:
Command3(string strName):m_strName(strName){};

void run()
{
cout< }

private:
string m_strName;
};

class Exclude
{
public:
void add(CommandBase& Command)
{
m_vetorCommand.push_back(&Command);
}
void run()
{
vector ::iterator Itr = m_vetorCommand.begin();
while(Itr != m_vetorCommand.end())
{
(*Itr++)->run();
}
}

private:
vector m_vetorCommand;
static Exclude m_cExclude;
};

int main()
{
Command1 cCommand1("cmd1");
Command2 cCommand2("cmd2");
Command3 cCommand3("cmd3");

Exclude cExclude;
cExclude.add(cCommand1);
cExclude.add(cCommand2);
cExclude.add(cCommand3);
cExclude.run();

while(1);
}

作者:peng654321