设计模式之命令模式

来源:互联网 发布:电梯三维仿真软件 编辑:程序博客网 时间:2024/04/29 16:11


   程序员文笔是该锤炼一下了。命令模式,直接解释不太好懂,可以结合军队中管理来理解就比较好。司令员作为最高长管(Invoker),它只负责下达命令,命令对于它来说就是一个对象,至于命令被谁执行,怎么执行,司令员是不用管的。命令下达后,一定得有接受命令的人(Receiver),在这里可以理解一个命令只有一个接受者来执行,所以一个命令对象需要绑定一个接受者。如此理解就好办了,下面是代码:

// Command.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <stdlib.h>class Receiver{public:void Action(){printf("Receiver: Command Execute!\n");}};class Command{public:virtual void Execute() = 0;};class MyCommand : public Command{public:MyCommand(Receiver* pReceiver): m_pReceiver(pReceiver){}~MyCommand(){}void Execute(){if (m_pReceiver){m_pReceiver->Action();}}protected:Receiver* m_pReceiver;};class Invoker{public:Invoker(Command* pCmd): m_pCmd(pCmd){}~Invoker(){}void Action(){if (m_pCmd){m_pCmd->Execute();}}protected:Command* m_pCmd;};int _tmain(int argc, _TCHAR* argv[]){Receiver receiver;MyCommand mycmd(&receiver);Invoker invoker(&mycmd);invoker.Action();system("@pause");return 0;}


0 0
原创粉丝点击