命令模式

解讀設計模式----命令模式(Command Pattern)

***本文與作者原文有一定的偏差,其中加入了一部分是個人看法,詳細請查看作者原文。***
原文連接http://www.dofactory.com/Patterns/PatternCommand.aspx

命令模式意圖:
  GOF 在《設計模式》一書中闡述其意圖:“將一個請求封裝爲一個對象,從而使你可用不同的請求對客戶進行參數化;對請求排隊或記錄請求日誌,以及支持可取消的操作。”這裏所謂的“不同的請求”也既意味着請求可能發生的變化,是一個可能擴展的功能點。

命令模式UML圖:
         
  Command模式將一個請求封裝爲一個對象,從而使你可以使用不同的請求對客戶進行參數化。

簡單示例:

Client

Command

Invoker

Receiver

運行結果:

Called Receiver.Action()


 
    在衆多的設計模式中,Command模式是很簡單也很優雅的一種設計模式。Command模式它封裝的是命令,把命令發出者的責任和命令執行者的責任分開。[TerryLee]

注意:
    如果比較類圖結構,我門會發現Command模式、Strategy模式、State模式是完全一樣的。事實正是如此,由於他門的設計思想都是對易於變化的部分進行抽象、或爲接口。唯一的區別,就是所抽象的行爲職責不同而已,這一點從各自的名字就可以看出。

參考資料:
TerryLee------.NET設計模式系列
Bruce Zhang---《軟件設計精要與模式》
www.dofactory.com
本文示例源碼下載

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章