命令模式

一、背景

       當須要向某些對象發送請求,可是不知道請求的接受者是誰,也不知道被請求的操做是哪一個,是得請求發送者與請求接受者解耦。設計

二、模式定義

       命令模式(Command Pattern):將一個請求封裝爲一個對象,從而使咱們可用不一樣的請求對客戶進行參數化,對請求排隊或者記錄請求日誌,以及支持可撤銷的操做。日誌

三、模式結構

       命令模式包括以下角色:對象

  • Command:抽象命令類
  • ConcreteCommand:具體命令類
  • Invoker:調用者
  • Receiver:接收者
  • Client:客戶類

四、優勢

  • 下降系統的耦合度。
  • 新的命令能夠很容易的加入到系統中。
  • 能夠比較容易的設計一個命令隊列和宏命令(組合命令)。
  • 能夠方便的實現對請求的Undo和Redo。

五、缺點

       使用命令模式可能會致使某些系統有過多的具體命令雷。因爲針對每個命令都須要設計一個具體命令類,所以某些系統可能須要大量具體命令類,這將影響命令模式的使用。排序

六、爲何使用命令模式

(1)咱們須要Client和Receiver同時開發,並且在開發過程當中須要分別不停地重構,更名。隊列

(2)要求有Redo和Undo等功能。開發

(3)要求命令不按照調用順序執行,而是按照執行時的狀況排序執行。重構

(4)在上述狀況下,接收者有多個。請求

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息