1. 程式人生 > >【設計模式】命令模式使用場景

【設計模式】命令模式使用場景

使用命令模式作為“回撥(CallBack)”在面向物件系統中的代替。“CallBack”講的便是現將一個函式登記上,然後在以後呼叫此函式。

需要在不同的時間制定請求、將請求排隊。一個命令物件和原先的請求發出者可以有不同的生命週期。換言之,原先的請求發出者可能已經不存在了,而命令物件本身仍然是活動的。這時命令的接受者可以是在本地,也可以在網路的另外一個地址。命令物件可以在序列化之後傳送到另外一臺機器上去。 

系統需要支援命令的撤銷。命令物件可以把狀態儲存起來,等到客戶端需要撤銷命令所產生的效果時,可以呼叫undo()方法,把命令所產生的效果撤銷掉。命令物件還可以提供redo()方法,以供客戶端需要時再重新實施命令效果。

如果要將系統中所有的資料更新到日誌裡。以便在系統崩潰時,可以根據日誌讀回所有的資料更新命令。重新呼叫Execute()方法一條一條執行這些命令,從而恢復系統在崩潰前所做的資料更新。