设计模式之命令(C++实例代码)

#include <iostream> #include <string>

using namespace std;

class simpledb { public:     simpledb()     {         }     simpledb(string dbname)     {         db_name = dbname;     }

    void state()     {         cout<<db_name<<" is okay."<<endl;     }

private:     string db_name;

};

class command { public:     virtual void execute() = 0;     virtual ~command(){};

protected:     command(){} };

class backup : public command { public:     backup(string filename) : file_name(filename)     {            }

    virtual void execute()     {         cout<<"backup : "<<file_name<<endl;     }

private:     string file_name; };

class restore: public command { public:     restore(string filename): file_name(filename)     {     }

    virtual void execute()     {         cout<<"restore : "<<file_name<<endl;     }

private:     string file_name; };

class state: public command { public:     state(simpledb db)     {         mydb = db;     }

    virtual void execute()     {         mydb.state();     }

private:     simpledb mydb; };

void click(command* cmd) {     cmd->execute(); }

int main(void) {     simpledb db("cdb");

    command* syscmd[3];

    syscmd[0]=new backup("test.txt");     syscmd[1]=new restore("test.txt");     syscmd[2]=new state(db);

    click(syscmd[0]);     click(syscmd[1]);     click(syscmd[2]);

    getchar();     //remember to delete syscmd[*]     return 1; }

程序太简单了,理解了就行。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淡定的茶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值