設計模式之十三 命令模式

2021-10-18 02:18:43 字數 357 閱讀 3349

定義:

將乙個請求封裝為乙個物件,從而使你可用不同的請求對客戶進行引數化;對請求排隊或記錄請求日誌,以及支援可撤銷的操

思考:說實話我有點懵,沒太懂這個模式在解決什麼問題。好像是要解耦?就是請求者跟執行者的解耦。

網上文章中,用得最多的就是顧客點餐,小二傳餐,廚師做餐的例子。我想了一下,如果要憑空實現這個功能,按目前的趨勢,可能就是乙個做菜的介面。顧客發起請求,廚師接到就生產?

但命令模式強調了有排序、記錄、撤消等操作。那麼這就是與平時介面實現 的區別?

假如不是介面實現,所有角色和動作在同乙個系統,那很可能也是用角色的注入和持有實現。比如做乙個***或者監視者,顧客有需求,那麼廚師會聽到,就去生產。命令模式的區別在哪兒?

設計模式之十三 命令模式

命令模式 將乙個請求封裝為乙個物件,從而使你可用不同的請求對客戶進行引數化 對請求排隊或者記錄請求日誌,以及支援可撤銷操作。命令模式的優點 能夠容易設計乙個命令佇列 在需要情況下,可以較容易地將命令記入日誌 允許接收請求的一方決定是否可以否決請求 可以輕易實現請求撤銷和重做 符合開閉原則 from ...

設計模式之狀態模式(十三)

當乙個物件的內在狀態改版的時候,允許改變其行為,這個物件看起來像是改變了其類。簡單來說就是我們在程式設計的時候可能會根據物件的狀態去寫很多的判斷語句if else。那麼狀態模式就是將判斷的語句封裝到乙個物件中,這樣對於擴充套件和改變狀態的判斷都非常的方便。汽車我們都知道有油箱,但是對於油箱還有多少的...

《設計模式》之十三 策略模式

strategy pattern 策略模式是一種比較簡單的模式,其定義如下 define a family of algorithms,encapsulate each one,and make them interchangeable 定義一組演算法,將每個演算法封裝起來,並且使它們可以互換 通用...