命令模式設計原則:遵循迪公尺特、開閉原則
常用場景:行為的請求者與行為的處理者耦合度過高
使用概率:20%
複雜度:中高
變化點:命令的種類
選擇關鍵點:請求者是否不需要關心命令的執行只知道接受者
逆鱗:命令的種類無限制增長
相關設計模式
職責鏈模式:容易將二者關聯在一起的原因是,二者都是為了處理請求或者命令而存在的,而且二者都是為了將請求者與響應者解耦,
不同的是命令模式中,客戶端需要知道乙個命令的接受者,在建立命令的時候就把接受者與命令繫結在一起傳送給呼叫者,
而職責鏈模式中,客戶端並不關心最終處理請求的物件是誰,客戶端只是封裝乙個請求物件,隨後交給職責鏈的頭部而已,也正因為這樣,二者的實現方式,有著很大的區別
主要思想:
**就是讓指定類去呼叫另乙個類的指定方法
相當於老闆告訴秘書叫某個人過來,秘書就告訴某人 老闆就你你過來下
老闆就是命令發出者,秘書就是呼叫者,某人就是命令接收者,這裡老闆就告訴了秘書接受者和命令
//員工接收者
public
class
employee }//
秘書排程者 這裡的命令可以多種,接收者也可以多種
public
class
secretary
public
void
execute()}//
老闆 命令發出著 也可以發各種命令
public
class
boss
public
void
sendcommand()
}public
class
test
}
設計模式 命令設計模式
一句話總結 命令設計模式的實質是將命令定義,命令的執行分離開,從而提公升了系統的解藕性 結構 命令的抽象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...