C 設計模式 備忘錄(Menento)

2021-08-14 10:48:39 字數 1299 閱讀 4423

在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存該狀態。使得該物件可恢復到原先儲存的狀態。

主要組成:

menento-備忘錄,儲存原發器的內部狀態。

originator-原發器,建立備忘錄,用於記錄內部狀態

caretaker-負責人,負責備忘錄的管理

using system.collections.generic;

namespace memento

public menento(string state)

}/// /// 原發器

///

class originator

//建立備忘錄

public menento createmenento()

//恢復狀態

public void setmemento(menento memento)

}/// /// 負責人

///

class caretaker

}public menento getmenento(int number)

else}}

}

呼叫:

using system;

namespace memento

", fileoriginator.state);

//恢復狀態

fileoriginator.setmemento(caretaker.getmenento(1));

console.writeline("恢復到:",fileoriginator.state);

//恢復狀態

fileoriginator.setmemento(caretaker.getmenento(2));

console.writeline("恢復到:",fileoriginator.state);

console.read();}}

}

結果:

C 設計模式 備忘錄模式

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

C 設計模式 備忘錄模式

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

設計模式 備忘錄

設計模式 備忘錄 備忘錄模式很簡單,就是儲存物件,然後支援恢復物件到之前的某個狀態,玩過遊戲的,一定懂得存檔一說,備忘錄就是對物件的存檔與管理。效果 這個需要配合fastcoder使用,請自行到github上去搜尋原始碼fastcoder原始碼 原始碼 model.h 與 model.m memen...