c 設計模式 命令模式 20

2021-10-09 10:21:46 字數 999 閱讀 9712

案例:小菜和大鳥去吃燒烤,向服務員點了烤羊肉串和烤雞翅

將請求命令的傳送者和命令的執行者完全解耦,每乙個請求封裝為乙個物件,從而可以使用不同的請求對客戶進行引數化,對請求排隊和記錄請求日誌,以及支援可撤銷的操作

#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...