設計模式練習(16) 備忘錄模式

2021-07-26 07:31:56 字數 1729 閱讀 6250

一、題目:

某軟體公司正在開發一款網遊,為了給玩家提供更多方便,在遊戲過程中可以設定乙個恢復點,用於儲存當前的遊戲場景,如果在後續遊戲過程中,玩家角色「不幸犧牲」,玩家可以返回到先前儲存的場景,從恢復點開始重新遊戲,試用備忘錄模式實現。

(1)繪製備忘錄模式結構檢視

(2)給出例項類圖並實現**

二、所用模式結構檢視:

三、例項類圖:

四、例項實現**:

(因為區分,所以在類的前面加了gj19)

原發器

package gjmementopattern;

/** * 原發器

*@author gong

* */

public

class

gj19originator

//建立乙個備忘錄物件

public gj19memento creatememento()

//根據備忘錄物件恢復原發器狀態

public

void

restorememento(gj19memento m)

public string getstate()

public

void

setstate(string state)

public

void

show()

}

備忘錄類

package gjmementopattern;

/** * 備忘錄類

* *@author gong

* */

public

class

gj19memento

public string getstate()

public

void

setstate(string state)

}

負責人

package gjmementopattern;

/** * 負責人

*@author gong

* */

public

class

gj19caretaker

public gj19memento getgj19memento()

}

備忘錄模式客戶端

package gjmementopattern;

/** * 備忘錄模式客戶端

*@author gong

* */

public

class

client

}

五、執行結果:

設計模式 備忘錄模式

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

設計模式 備忘錄模式

備忘錄模式 memento pattern 在不破壞封閉的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可將該物件恢復到原先儲存的狀態。涉及角色 1.original 發起人 負責建立乙個備忘錄memento,用以記錄當前時刻自身的內部狀態,並可使用備忘錄恢復內部狀態。ori...

設計模式 備忘錄模式

備忘錄模式是一種行為模式,該模式業內關於儲存物件當前狀態,並且之後可以再次恢復到此狀態。備忘錄模式實現的方式需要保證被儲存的物件狀態不能被物件從外部訪問,目的是為了保護好被儲存的這些物件狀態的完整性以及內部實現不向外暴露。在不破壞封閉的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態,這樣...