定義
備忘錄模式在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態,這樣以後就可將該物件恢復到原先儲存的狀態。
類圖
originator
發起人角色
記錄當前時刻的狀態,負責定義哪些屬於備份範圍的狀態,負責建立和恢復備忘錄資料。
memento
備忘錄角色
負責儲存originator
發起人物件的內部狀態,在需要的時候提供發起人需要的內部狀態。
caretaker
備忘錄管理員角色
對備忘錄進行管理、儲存和提供備忘錄。
實現發起人角色:
package com.sigalhu.mementopattern.impl;
public
class
originator
public
void
setstate(string state)
//建立乙個備忘錄
public memento creatememento()
//恢復乙個備忘錄
public
void
restorememento(memento memento)
}
備忘錄角色:
package com.sigalhu.mementopattern.impl;
public
class
memento
public string getstate()
public
void
setstate(string state)
}
備忘錄管理員角色:
package com.sigalhu.mementopattern.impl;
public
class
caretaker
public
void
setmemento(memento memento)
}
場景類:
package com.sigalhu.mementopattern.impl;
public
class
client
}
注意
原始碼:
設計之禪 備忘錄模式
備忘錄模式是非常簡單的一種模式,應用場景非常廣泛,如編輯器的ctrl z 資料庫事務的回滾 遊戲的存檔等等都符合該模式的思想 備份 比較疑惑為什麼叫備忘錄模式,叫備份模式不是更貼切麼?備忘錄模式就是將乙個物件的內部狀態儲存到物件的外部,這樣,在將來的任一時間點都可以恢復到之前的狀態,讓我們有後悔藥可...
大話設計模式讀書筆記之備忘錄模式
1.定義 memento,在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可以將該物件恢復到原先儲存的狀態。如遊戲中的恢復到某一關卡 2.uml 類圖 解釋說明 originator 發起人 負責建立乙個備忘錄memento,用以記錄當前時刻它的內部狀態,並可使...
《設計模式之禪》之備忘錄模式
備忘錄模式提供了一種彌補真實世界缺陷的方法,讓 後悔藥 在程式的世界中真實可行,其定義如下 在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可將該物件恢復到原先儲存的狀態。originator發起人角色 記錄當前時刻的內部狀態,負責定義哪些屬於備份範圍的狀態,負...