Command 模式C++ 代码

来源:互联网 发布:unity3d 渐变透明 编辑:程序博客网 时间:2024/06/05 20:04
#include <iostream>#include <string>#include <vector>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<<m_strName<<endl;}private:string m_strName;};class Command2:public CommandBase{    public:Command2(string strName):m_strName(strName){};void run(){        cout<<m_strName<<endl;}private:string m_strName;};class Command3:public CommandBase{    public:Command3(string strName):m_strName(strName){};void run(){        cout<<m_strName<<endl;}private:string m_strName;};class Exclude{   public:    void add(CommandBase& Command)    {    m_vetorCommand.push_back(&Command);}void run(){        vector <CommandBase*>::iterator Itr = m_vetorCommand.begin();while(Itr != m_vetorCommand.end()){            (*Itr++)->run();}}   private:   vector <CommandBase*> 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);}


原创粉丝点击