命令模式:將乙個請求封裝為乙個物件,從而使你可用不同請求。對客戶進行引數化,對請求排隊或記錄請求日誌,以及支援可撤銷的操作。優點就是把乙個請求操作的物件,和乙個知道怎麼乙個操作的物件分隔開,不再是緊耦合。敏捷開發原則,不要為**新增基於猜測的,實際不需要的功能。這也是程式設計中很重要的乙個原則——kiss原則。
#pragma once
#include #include using std::list;
//最終處理命令者
class barbecuer
void bakechickenwing() };
//命令類系
class command
virtual void excutecommand()
protected:
barbecuer m_cur;
};class bakechickenwingcommand :public command
virtual void excutecommand() };
class bakemuttoncommand :public command
virtual void excutecommand() };
//管理命令類
class waiter
void cancelcommand(command* com)
//通知執行
void notify() }
private:
listm_comlist;
};int main()
設計模式(十四) 命令模式
一 概述 官方解釋 encapsulate a request as an object,thereby letting you parameterize clients with different requests,queue or log requests,and support undoab...
設計模式C 版 第十式外觀模式
在開發階段子系統會因為不斷地重構變得越來越複雜,模式使用時會產生大量的小類,使用外觀模式可以減少 它們之間的依賴。外觀模式,重點在於分層,層與層之間建立外觀。這樣兩個不同的複雜層之間,使用簡單的介面。其次 維護乙個遺留系統時,提供乙個外觀,讓新系統與外觀互動,會使得介面簡單清晰。include cl...
設計模式C 版 第十五式職責鏈模式
職責鏈模式 使多個物件都有機會處理請求,從而便面請求傳送者和接收者之間的耦合關係。將這個物件連成一條鏈,並沿著鏈條傳遞該請求,直到有乙個物件處理它為止。類似狀態模式。接收者和傳送者都沒有對方的明確資訊,且鏈中的物件,自己也不知道鏈的結構。職責鏈可以簡化物件的相互連線,僅保持乙個後繼者的引用,而不需保...