當須要向某些對象發送請求,可是不知道請求的接受者是誰,也不知道被請求的操做是哪一個,是得請求發送者與請求接受者解耦。設計
命令模式(Command Pattern):將一個請求封裝爲一個對象,從而使咱們可用不一樣的請求對客戶進行參數化,對請求排隊或者記錄請求日誌,以及支持可撤銷的操做。日誌
命令模式包括以下角色:對象
使用命令模式可能會致使某些系統有過多的具體命令雷。因爲針對每個命令都須要設計一個具體命令類,所以某些系統可能須要大量具體命令類,這將影響命令模式的使用。排序
(1)咱們須要Client和Receiver同時開發,並且在開發過程當中須要分別不停地重構,更名。隊列
(2)要求有Redo和Undo等功能。開發
(3)要求命令不按照調用順序執行,而是按照執行時的狀況排序執行。重構
(4)在上述狀況下,接收者有多個。請求