《設計模式之禪》讀書筆記 19 備忘錄模式

2021-08-20 11:11:48 字數 1345 閱讀 8609

定義

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

類圖

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發起人角色 記錄當前時刻的內部狀態,負責定義哪些屬於備份範圍的狀態,負...