atitit.設計模式(2) -----查表模式/ command 總結算法
1. 應用場景: 1設計模式
5. 使用命令模式做爲"CallBack"在面向對象系統中的替代。 1spa
2. Command模式相似於Interpreter模式. 2日誌
它可以充分體現該模式的價值.在菜單的設計中,菜單項知道應該在什麼時候執行操做,可是並不知道將會調用哪一個方法.咱們經過應用Command模式能夠將菜單項對應的方法調用做爲參數傳給菜單.
Command模式的另一個用法是容許在服務的上下文中執行客戶代碼.服務常常在客戶代碼調用前和調用後運行.最後,除了控制方法執行的時機或者上下文以外,Command模式還能夠提供鉤子,容許可選的客戶代碼做爲算法的一部分執行
1)"CallBack"講的即是先將一個函數登記上,而後在之後調用此函數。
2)須要在不一樣的時間指定請求、將請求排隊。一個命令對象和原先的請求發出者能夠有不一樣的生命期。換言之,原先的請求發出者可能已經不在了,而命令 對象自己仍然是活動的。這時命令的接收者能夠是在本地,也能夠在網絡的另一個地址。命令對象能夠在串形化以後傳送到另一臺機器上去。
命令對象能夠把狀態存儲起來,等到客戶端須要撤銷命令所產生的效果時,能夠調用undo()方法,把命令所產生的效果撤銷掉。命令對象還能夠提供redo()方法,以供客戶端在須要時,再從新實施命令效果。
4)若是一個系統要將系統中全部的數據更新到日誌裏,以便在系統崩潰時,能夠根據日誌裏讀回全部的數據更新命令,從新調用Execute()方法一條一條執行這些命令,從而恢復系統在崩潰前所作的數據更新。
做者:: 老哇的爪子 Attilax 艾龍, EMAIL:1466519819@qq.com
轉載請註明來源: http://blog.csdn.net/attilax
在這個層面上,Command模式和其是相競爭的,Command模式相似直接拋繡球,知道目的,可以最有效率,可是前提在設計編碼階段你必須知道你的目的地;Command模式和職責鏈的區別與Decorator和AOP攔截器的區別是相似的
參考
Java之命令模式(Command Pattern) - Devin Zhang - 博客園 (hteu 有 etc code
o725