案例:小菜和大鳥去吃燒烤,向服務員點了烤羊肉串和烤雞翅
將請求命令的傳送者和命令的執行者完全解耦,每乙個請求封裝為乙個物件,從而可以使用不同的請求對客戶進行引數化,對請求排隊和記錄請求日誌,以及支援可撤銷的操作
#ifndef _command_pattern_
#define _command_pattern_
#include
#include
class
barbecuer
void
bakechickening()
};class
command
virtual
void
excutecommand()
=0;protected
: std::shared_ptr m_spbarbecuer;};
class
bakemuttoncommand
:public command
void
excutecommand()
};class
bakechickenwingcommand
:public command
void
excutecommand()
};class
waiter
void
cancelorder
(std::shared_ptr spcommand)
}void
notify()
}private
: std::vector> m_veccommand;};
#endif
// !_command_pattern_
客戶端呼叫
#include
"command_pattern.h"
#include
intmain()
設計模式 命令模式(20)
一 定義 命令模式就是將乙個請求封裝成乙個物件,從而使你可用不同的請求對客戶進行引數化,對請求排列或者記錄請求日誌,以及支援可撤銷的操作。二 框架運用 tomcat作為乙個伺服器本身會接受外部大量請求,當乙個請求過來後tomcat根據網域名稱去找對應的host,找到host後會根據應用名去找具體的c...
C 設計模式 命令模式
命令模式 command 將乙個請求封裝為乙個物件,從而使你可以不同的請求對客戶進行引數化 對請求排隊或記錄請求日誌,以及支援可撤銷的操作。命令模式結構圖 command類,用來宣告執行操作的介面。class command protected receiver receiver public co...
c 設計模式(命令模式)
good 一 建立命令佇列 二 可以將命令記入日誌 三 接收請求的一方可以拒絕 四 新增乙個新命令類不影響其它類 命令模式把請求乙個操作的物件與知道怎麼操行乙個操作的物件分開 例 include include include using namespace std 烤肉師傅 class barbu...