何為命令模式?
命令模式(command pattern)是一種資料驅動的設計模式,它屬於行為型模式。請求以命令的形式包裹在物件中,並傳給呼叫物件。呼叫物件尋找可以處理該命令的合適的物件,並把該命令傳給相應的物件,該物件執行命令。
主要解決的問題
在軟體系統中,行為請求者與行為實現者通常是一種緊耦合的關係,但某些場合,比如需要對行為進行記錄、撤銷或重做、事務等處理時,這種無法抵禦變化的緊耦合的設計就不太合適。
使用命令模式?
在某些場合,比如要對行為進行"記錄、撤銷/重做、事務"等處理,這種無法抵禦變化的緊耦合是不合適的。在這種情況下,如何將"行為請求者"與"行為實現者"解耦?將一組行為抽象為物件,可以實現二者之間的松耦合。
關鍵**
invoker 命令物件的入口(甲方)
command 命令的具體方向(乙方)
received 真正的命令執行物件(執行元素)
命令模式優點:降低了系統耦合度,新的命令可以很容易新增到系統中去。
命令模式缺點:使用命令模式可能會導致某些系統有過多的具體命令類。
使用場景
涉及命令的地方都可以使用命令模式
命令模式demo
架構設計六之命令模式
定義 將請求封裝成乙個物件,從而讓使用者使用不同的請求吧客戶端引數化。請求排隊或者記錄請求日誌,以及支援可撤銷的操作。1.系統需要將請求呼叫者和請求接收者解耦,使得呼叫者和接收者不直接互動。2.系統需要在不同的時間指定請求 將請求排隊和執行請求。3.系統需要支援命令的撤銷 undo 操作和恢復 re...
移動架構 命令模式
將請求封裝成乙個物件,從而讓使用者使用不同的請求吧客戶端引數化。請求排隊或者記錄請求日誌,以及支援可撤銷的操作 系統需要將請求呼叫者和請求接收者解耦,使得呼叫者和接收者不直接互動 系統需要在不同的時間指定請求 將請求排隊和執行請求 系統需要支援命令的撤銷 undo 操作和恢復 redo 操作 系統需...
分析模式之責任模式
1 party 團體 最初的通訊簿模型如下 用團體來概括人和組織 這樣做的好處是人和組織都可以同等的來考慮。對於 來說,我不需要知道這是屬於乙個公司的,還是只是屬於個人的。2 組織層次 考慮下面一種情況,乙個跨國公司芳香咖啡機製造公司 acm 它有很多分公司,每個分公司又分成不同的區域子公司,而每個...