设计模式复习-命令模式
生活随笔
收集整理的這篇文章主要介紹了
设计模式复习-命令模式
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
#pragma once
#include "stdafx.h"
#include<set>
#include<string>
#include<iostream>
using namespace std;/*設(shè)計模式-命令模式(Command)將一個請求封裝為一個對象,從而使你可用不同的請求對客戶進行參數(shù)化;
對請求排隊或記錄請求日志,以及支持可撤銷的操作。
*/class CReceiver {//知道如何實施于執(zhí)行一個與請求相關(guān)的類的操作。
public:void Action() {cout << "command" << endl;}
};class CCommand {//用來聲明執(zhí)行操作的接口。
protected:CReceiver *m_pReceiver;
public:CCommand(CReceiver *pCReceiver) {m_pReceiver = pCReceiver;}virtual void Execute() = 0;
};class CConcreteCommand :public CCommand {//將一個接受對象綁定于一個接受動作,調(diào)用接受者相應(yīng)的操作,以實現(xiàn)Execute.
public:CConcreteCommand(CReceiver *pCReceiver) :CCommand(pCReceiver) {}void Execute() {m_pReceiver->Action();}
};class Cinvoker {//要求該命令執(zhí)行這個請求
private:CCommand *m_pCommand;
public:void SetCommand(CCommand *pCommand) {m_pCommand = pCommand;}void ExecuteCommand() {m_pCommand->Execute();}
};int main() {CReceiver *pReceiver = new CReceiver();CCommand *pCommand = new CConcreteCommand(pReceiver);Cinvoker *pInvoker = new Cinvoker();pInvoker->SetCommand(pCommand);pInvoker->ExecuteCommand();delete pReceiver;delete pCommand;delete pInvoker;getchar();return 0;
}
總結(jié)
以上是生活随笔為你收集整理的设计模式复习-命令模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设计模式复习-桥接模式
- 下一篇: 设计模式复习-职责链模式