atitit.設計模式(2) -----查表模式/ command 總結

atitit.設計模式(2) -----查表模式command 總結算法

 

1. 應用場景: 1設計模式

1. 取代一瓦if else 1api

2. 建設api rpc風格的時候兒. 1網絡

3. 菜單是Command模式的一個典型實例, 1函數

4. 上下文中執行客戶代碼 1編碼

5. 使用命令模式做爲"CallBack"在面向對象系統中的替代。 1spa

6. 3)系統須要支持命令的撤消(undo)2.net

7. 日誌恢復 2設計

2. Command模式相似於Interpreter模式. 2日誌

3. Command模式和職責鏈的區別 2

 

1. 應用場景:

1. 取代一瓦if else 

2. 建設api rpc風格的時候兒.

3. 菜單是Command模式的一個典型實例,

它可以充分體現該模式的價值.在菜單的設計中,菜單項知道應該在什麼時候執行操做,可是並不知道將會調用哪一個方法.咱們經過應用Command模式能夠將菜單項對應的方法調用做爲參數傳給菜單.

 

4. 上下文中執行客戶代碼

Command模式的另一個用法是容許在服務的上下文中執行客戶代碼.服務常常在客戶代碼調用前和調用後運行.最後,除了控制方法執行的時機或者上下文以外,Command模式還能夠提供鉤子,容許可選的客戶代碼做爲算法的一部分執行

5. 使用命令模式做爲"CallBack"在面向對象系統中的替代。

1)"CallBack"講的即是先將一個函數登記上,而後在之後調用此函數。

2)須要在不一樣的時間指定請求、將請求排隊。一個命令對象和原先的請求發出者能夠有不一樣的生命期。換言之,原先的請求發出者可能已經不在了,而命令 對象自己仍然是活動的。這時命令的接收者能夠是在本地,也能夠在網絡的另一個地址。命令對象能夠在串形化以後傳送到另一臺機器上去。

6. 3)系統須要支持命令的撤消(undo)

命令對象能夠把狀態存儲起來,等到客戶端須要撤銷命令所產生的效果時,能夠調用undo()方法,把命令所產生的效果撤銷掉。命令對象還能夠提供redo()方法,以供客戶端在須要時,再從新實施命令效果。

7. 日誌恢復

4)若是一個系統要將系統中全部的數據更新到日誌裏,以便在系統崩潰時,能夠根據日誌裏讀回全部的數據更新命令,從新調用Execute()方法一條一條執行這些命令,從而恢復系統在崩潰前所作的數據更新。

 

 

做者:: 老哇的爪子 Attilax 艾龍,  EMAIL:1466519819@qq.com

轉載請註明來源: http://blog.csdn.net/attilax

2. Command模式相似於Interpreter模式.

3. Command模式和職責鏈的區別

在這個層面上,Command模式和其是相競爭的,Command模式相似直接拋繡球,知道目的,可以最有效率,可是前提在設計編碼階段你必須知道你的目的地;Command模式和職責鏈的區別與Decorator和AOP攔截器的區別是相似的

 

參考

 

Java之命令模式(Command Pattern) - Devin Zhang - 博客園 (hteu 有 etc code

o725 我要啦免費統計 我要啦免費統計
相關文章
相關標籤/搜索