十四 備忘錄模式

2021-06-06 19:12:03 字數 1094 閱讀 3916

備忘錄(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可根據需要...