在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存該狀態。使得該物件可恢復到原先儲存的狀態。
主要組成:
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...