C語言和設計模式(備忘錄模式)

2021-10-01 11:22:27 字數 571 閱讀 4660

**設計在修改之後支援回退(撤銷、恢復)

備忘錄模式的起源來自於撤銷的基本操作。有過word軟體操作經驗的朋友,應該基本上都使用過撤銷的功能。舉個例子,假設你不小心刪除了好幾個段落的文字,這時候你應該怎麼辦呢?其實要做的很簡單,單擊一些【撤銷】就可以全部搞定了。撤銷按鈕給我們提供了一次反悔的機會。

既然是撤銷,那麼我們在進行某種動作的時候,就應該建立乙個相應的撤銷操作?這個撤銷操作的相關定義可以是這樣的。

typedef struct _action

action;

資料結構中定義了兩個部分:撤銷的資料、恢復的操作。那麼這個撤銷函式應該有乙個建立的函式,還有乙個恢復的函式。所以,作為撤銷動作的管理者應該包括

typedef struct _organizer

organizer;

既然資料在建立和修改的過程中都會有相應的恢復操作,那麼要是真正恢復原來的資料也就變得非常簡單了。

void restore(struct _organizer* porganizer)

C 設計模式 備忘錄模式

應用 ifndef caretaker h define caretaker h include memento.h class caretaker void setmemento memento memento 備忘錄物件 private memento memento endif caretak...

C 設計模式 備忘錄模式

一.介紹 備忘錄模式 memento pattern 屬於行為型模式。它在不破壞封裝性的前提下,捕捉乙個物件的內部狀態,並在該物件之外儲存這個狀態,這樣以後就可將該物件恢復到原先儲存的狀態。二.實現 備忘錄顧名思義就是可以儲存多個資訊的工具。在該模式下,如果乙個物件出現了多種狀態,通過管理者的集合去...

設計模式 備忘錄模式

錄入大批人員資料。正在錄入當前人資料時,發現上乙個人的資料錄錯了,此時需要恢復上乙個人的資料,再進行修改。word文件編輯時,突然電腦宕機或者斷電,再開啟時,可以看到word提示你恢復以前的文件。就死儲存某個物件內部狀態的拷貝,這樣以後就可以將該物件恢復到原先的狀態。源髮器類originator 備...