設計模式學習 備忘錄模式

2021-07-28 11:42:24 字數 925 閱讀 6081

備忘錄模式,在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可將該物件恢復到原先儲存的狀態。

把要儲存的細節給封裝在了memento中了,哪一天要更改儲存的細節也不用影響客戶端了。

應用:memento模式比較適用於功能比較複雜的,但需要維護或記錄屬性歷史的類,或者需要儲存的屬性只是眾多屬性中的一小部分時,originator可以根據儲存的memento資訊還原到前一狀態。

#include using namespace std;

class state //狀態儲存箱

; //建構函式

int getvit() //獲取體力

int getatk() //獲取攻擊力

int getdef() //獲取防禦力

};class statemanger //狀態管理

state* getstate() //獲取狀態 };

class gamerole //遊戲角色

void fight() //攻打boss };

int main()

顯示結果:

[hjf@hjf 設計模式]$ ./a.out 

當前角色狀態:

體力:100

攻擊力:100

防禦力:100

當前角色狀態:

體力:0

攻擊力:0

防禦力:0

當前角色狀態:

體力:100

攻擊力:100

防禦力:100

設計模式學習 備忘錄模式

備忘錄模式 在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態,這樣以後就可以將該物件恢復到原先儲存的狀態 originator 發起人,負責建立乙個備忘錄memento,用以記錄當前時刻他的內部狀態,並可使用備忘錄恢復內部狀態,originator可根據需要覺得mement...

學習設計模式 備忘錄模式

說明 定義 在不破壞封裝性的前提下,捕獲乙個物件內部狀態,並在物件之外儲存這個狀態。這樣以後就可以將該物件恢復到原來的模樣。需求 購買商品時,儲存商品購買時的資訊,以便使用者可以通過快照功能檢視商品以前的資訊。解決方式 a.定義乙個備忘錄類 商品資訊 b.定義乙個備忘錄管理類,用於儲存備忘錄當前狀態...

設計模式 備忘錄模式

錄入大批人員資料。正在錄入當前人資料時,發現上乙個人的資料錄錯了,此時需要恢復上乙個人的資料,再進行修改。word文件編輯時,突然電腦宕機或者斷電,再開啟時,可以看到word提示你恢復以前的文件。就死儲存某個物件內部狀態的拷貝,這樣以後就可以將該物件恢復到原先的狀態。源髮器類originator 備...