應用:
#ifndef caretaker_h
#define caretaker_h
#include "memento.h"
class caretaker
void setmemento(memento *memento)
//備忘錄物件
private:
memento *memento_;
};#endif // caretaker_h
#ifndef memento_h
#define memento_h
#include class memento
qstring getstate()
void setstate(qstring state)
};#endif // memento_h
#ifndef originator_h
#define originator_h
#include "memento.h"
class originator
void setstate(qstring state)
//建立乙個備忘錄
memento* creatememento()
//恢復乙個備忘錄
void restorememento(memento *_memento)
//內部狀態
private:
qstring state_ = "";
};#endif // originator_h
#include "caretaker.h"
#include "originator.h"
int main(int argc, char *ar**)
原始碼github:cppdesignpattern
coologic 部落格網域名稱已更改,已從 www.techieliang.com 改為
www.coologic.cn,上述鏈結位址受到影響,若需檢視源文請手動修改,多有不便,敬請諒解。
C 設計模式 備忘錄模式
一.介紹 備忘錄模式 memento pattern 屬於行為型模式。它在不破壞封裝性的前提下,捕捉乙個物件的內部狀態,並在該物件之外儲存這個狀態,這樣以後就可將該物件恢復到原先儲存的狀態。二.實現 備忘錄顧名思義就是可以儲存多個資訊的工具。在該模式下,如果乙個物件出現了多種狀態,通過管理者的集合去...
設計模式 備忘錄模式
錄入大批人員資料。正在錄入當前人資料時,發現上乙個人的資料錄錯了,此時需要恢復上乙個人的資料,再進行修改。word文件編輯時,突然電腦宕機或者斷電,再開啟時,可以看到word提示你恢復以前的文件。就死儲存某個物件內部狀態的拷貝,這樣以後就可以將該物件恢復到原先的狀態。源髮器類originator 備...
設計模式 備忘錄模式
備忘錄模式 memento pattern 在不破壞封閉的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可將該物件恢復到原先儲存的狀態。涉及角色 1.original 發起人 負責建立乙個備忘錄memento,用以記錄當前時刻自身的內部狀態,並可使用備忘錄恢復內部狀態。ori...