基本類圖:
命令模式比較簡單,具體的說就是:receiver中執行完成了某個功能,但是我們又不想把它暴露給client,這時候我們就通過command來封裝receiver。最後客戶端client中就只會出現invoker和command的子類。
invoker中應該有2個基本的方法:
1, setcommand(command command); 設定命令
2, action(); 執行命令,其實就是呼叫command的excute()函式。
比如下面的**:
void main()如此,客戶端高層就和底層的receiver之前基本上沒什麼耦合了。
需要增加新功能的話,只需要擴充套件command子類就行了。這裡就會有個問題,到時候command子類會膨脹的很厲害,
所以大家還得根據自己的實際情況來確定是否適合使用命令模式。
設計模式 命令設計模式
一句話總結 命令設計模式的實質是將命令定義,命令的執行分離開,從而提公升了系統的解藕性 結構 命令的抽象command 命令的具體實現concretecommand 命令處理者抽象ireceiver 命令處理者的具體實現concretereceiver 命令的呼叫者invoker 客戶端client...
設計模式 命令模式
1 命令模式的角色組成 1 命令角色 command 生命執行操作的介面。介面或抽象類來實現。2 具體命令角色 concrete command 將乙個接收者物件繫結於乙個動作 呼叫接收者相應的操作,以實現命令角色宣告的執行操作的介面。3 客戶角色 client 建立乙個具體命令物件 並可以設定它的...
設計模式 命令模式
1 command.h ifndef command h define command h include include include using namespace std class chef 廚師,具體命令的執行者 class command 命令基類 class makemuttonco...