command model

来源:互联网 发布:中国和沙特关系 知乎 编辑:程序博客网 时间:2024/06/08 10:21
#include <iostream>#include <string>#include <list>using namespace std;/************************************************************************//* 命令模式,将一个请求封装成一个对象,从而使你可以用不同的请求对客户进行参数化;/* 对请求排队和记录请求日志, 以及支持可撤销的操作。/************************************************************************/class Receiver {public:virtual void Action(){cout << "action";}};class Command {public:Command (Receiver* pReceiver){m_pReceiver = pReceiver;}virtual void ExecuteCommand(){m_pReceiver->Action();}private:Receiver *m_pReceiver;};class Invoker {public:void SetCommand(Command *pCommand){m_pCommand = pCommand;}void Notify(){m_pCommand->ExecuteCommand();}private:Command *m_pCommand;};int main(int argc, char** argv){Receiver *pRec = new Receiver();Command  *pCom = new Command(pRec);Invoker *pInvoker = new Invoker();pInvoker->SetCommand(pCom);pInvoker->Notify();getchar();return 0;}

1 0