備忘錄(memento)在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可將該物件恢復到原先儲存的狀態。
/*originator(發起人)負責建立乙個備忘錄memento,用以記錄當前時刻他的內部狀態
並可以使用備忘錄恢復內部狀態。
*/#ifndef _ortiginator_h_
#define _ortiginator_h_
#include #include using namespace std;
class memento;
class originator
void setstate(const string& st)
string getstate()
void setmomento(memento* mot)
memento* creatememonto()
void show()
string getstate()
private:
string _state;
};#endif
//caretaker負責儲存備忘錄,不對其進行修改
#ifndef _caretaker_h_
#define _caretaker_h_
class memento;
class caretaker
memento* getmomento() };
#endif
#include "memonto.h"
#include "originator.h"
#include "caretaker.h"
int main()
#include "memonto.h"
#include "originator.h"
#include "caretaker.h"
int main()
設計模式(十四)備忘錄模式
十四 備忘錄模式 在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件外儲存這個狀態。這樣以後就可以將該物件恢復到原先儲存的狀態。備忘錄模式比較適用於功能比較複雜的,但需要維護或記錄屬性歷史的類,或者需要儲存的屬性只是眾多屬性中的一小部分時,發起人可以根據儲存的備忘錄資訊還原到前一狀態。十四 ...
C 設計模式(十四) 備忘錄模式
在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可將該物件恢復到原來儲存的狀態。本文介紹了備忘錄模式 框架,使用c 語言描述,存在的不足或問題有望各位指出。備忘錄模式框架 include include using namespace std class mem...
備忘錄模式
備忘錄模式 memento 在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可將該物件恢復到原先儲存的狀態。originator 發起人 負責建立乙個備忘錄memento,用以記錄當前時刻它的內部狀態,並可以使用備忘錄恢復內部狀態。originator可根據需要...