[设计模式]命令模式
生活随笔
收集整理的這篇文章主要介紹了
[设计模式]命令模式
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
代碼如下:
#include <iostream> #include <queue> #include <Windows.h> using namespace std;class HandleClientProtocol { public:void addMoney(){cout << "給玩家增加金幣" << endl;}void addDiamond(){cout << "給玩家增加鉆石" << endl;}void addEquipment(){cout << "給玩家穿裝備" << endl;}void addLevel(){cout << "給玩家升級" << endl;} };class AbstractCommand { public:virtual void handle() = 0; };class AddMoneyCommand :public AbstractCommand { public:AddMoneyCommand(HandleClientProtocol* protocol) :protocol(protocol) {}virtual void handle(){this->protocol->addMoney();}HandleClientProtocol *protocol; };class AddDiamondCommand :public AbstractCommand { public:AddDiamondCommand(HandleClientProtocol* protocol) :protocol(protocol) {}virtual void handle(){this->protocol->addDiamond();}HandleClientProtocol *protocol; };class AddEquipmentCommand :public AbstractCommand { public:AddEquipmentCommand(HandleClientProtocol* protocol) :protocol(protocol) {}virtual void handle(){this->protocol->addEquipment();}HandleClientProtocol *protocol; };class AddLevelCommand :public AbstractCommand { public:AddLevelCommand(HandleClientProtocol* protocol) :protocol(protocol) {}virtual void handle(){this->protocol->addLevel();}HandleClientProtocol *protocol; };class Serser {public:void addRequest(AbstractCommand *command){commands.push(command);}void startHandle(){while (!commands.empty()){Sleep(2000);AbstractCommand *command = commands.front();command->handle();commands.pop();}}queue<AbstractCommand *> commands;};void test01() {HandleClientProtocol *protocol = new HandleClientProtocol;AbstractCommand *addmoney = new AddMoneyCommand(protocol);AbstractCommand *adddiamond = new AddDiamondCommand(protocol);AbstractCommand *addequipment = new AddEquipmentCommand(protocol);AbstractCommand *addlevel = new AddLevelCommand(protocol);Serser *server = new Serser;server->addRequest(addmoney);server->addRequest(adddiamond);server->addRequest(addequipment);server->addRequest(addlevel);server->startHandle();}int main() {test01();return 0; }測試結(jié)果:
總結(jié)
以上是生活随笔為你收集整理的[设计模式]命令模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [设计模式]观察者模式
- 下一篇: [设计模式]策略模式