設計模式 備忘錄模式(memento)

2021-10-07 18:29:34 字數 1827 閱讀 8661

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

memento:備份類,裡面包含部分或全部originator的屬性(便簽紙)

caretaker:真正儲存備份的地方(便簽紙貼的地方)

替答到。我也不知道怎麼就想到了這個。上課的時候,老師點名,如果你要幫同學答到,那麼你就需要先將自己的名字藏起來,換成你同學的名字,等替他答完了,你再換回自己名字。(我並沒有在教壞小朋友,還請同學們乖乖自己去上課)

學生類:

package

designpattern.memento;

public

class

student

public

memento creatememento()

public

void

restorememento(memento memento)

public

string getname()

public

void

setname(string name)

public

string getmajor()

public

void

setmajor(string major)

public

string getstudentno()

public

void

setstudentno(string studentno)

@override

public

string tostring()

}

備忘錄類:

package

designpattern.memento;

public

class

memento

public

string getname()

public

void

setname(string name)

public

string getmajor()

public

void

setmajor(string major)

}

儲存類:

package

designpattern.memento;

public

class

caretaker

public

void

setmemento(memento memento)

}

客戶端:

package

designpattern.memento;

public

class

client

}

結果輸出:

student [name=郝鑫仁, major=計算機, studentno=1234]

開始點名...

student [name=齊步萊, major=自動化, studentno=1234]

點名結束

student [name=郝鑫仁, major=計算機, studentno=1234]

備忘錄模式就是用於臨時儲存類的一部分資訊,以便它能回到儲存前的狀態。

這個我在實際應用中暫時沒有遇到相關的例項,書中說到的儲存遊戲進度算乙個,但我自己開發中暫時還沒遇到。

設計模式 備忘錄模式

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

設計模式 備忘錄模式

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

設計模式 備忘錄模式

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