命令設計模式

一、命令模式屬於對象的行爲模式設計

  • 命令模式又稱爲行動(Action)模式或交易(Transaction)模式
  • 命令模式把一個請求或者操做封裝到一個對象中
  • 命令模式容許系統使用不一樣的請求把客戶端參數化,對請求排隊或者記錄請求日誌,能夠提供命令的撤銷和恢復功能

二、命令模式的結構3d

  • 命令模式是對命令的封裝
  • 命令模式把發出命令的責任和執行命令的責任分割開,委派給不一樣的對象

命令容許請求的一方和接收請求的一方可以獨立演化,從而具備如下的優勢:日誌

  (1)命令模式使新的命令很容易地被加入到系統裏。對象

  (2)容許接收請求的一方決定是否要否決請求。blog

  (3)能較容易地設計一個命令隊列。隊列

  (4)能夠容易地實現對請求的撤銷和恢復。io

  (5)在須要的狀況下,能夠較容易地將命令記入日誌擴展

源代碼請求

  • 接收者角色類

  • 抽象命令角色類

  • 具體命令角色類

  • 請求者角色類

  • 客戶端角色類

二、命令模式的優勢im

(1)更鬆散的耦合

  • 命令模式使得發起命令的對象——客戶端,和具體實現命令的對象——接收者對象徹底解耦
  • 也就是說發起命令的對象徹底不知道具體實現對象是誰,也不知道如何實現

(2)更動態的控制

  • 命令模式把請求封裝起來,能夠動態地對它進行參數化、隊列化和日誌化等操做,從而使得系統更靈活

(3)很天然的複合命令

  • 命令模式中的命令對象可以很容易地組合成複合命令,也就是宏命令,從而使系統操做更簡單,功能更強大

(4)更好的擴展性

  • 因爲發起命令的對象和具體的實現徹底解耦,所以擴展新的命令就很容易
  • 只須要實現新的命令對象,而後在裝配的時候,把具體的實現對象設置到命令對象中,而後就可使用這個命令對象
  • 已有的實現徹底不用變化
相關文章
相關標籤/搜索