行為型模式 備忘錄模式

2021-07-04 08:05:43 字數 1287 閱讀 5988

備忘錄模式

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

備忘錄模式角色

發起人(

originator

)角色:該角色記錄當前時刻的內部狀態,負責定義哪些屬於備份範圍的狀態,負責建立和恢復備忘錄資料;

備忘錄(

memento

)角色:該角色負責儲存發起人角色的內部狀態,在需要時提供發起人需要的備份狀態資料;

負責人(

caretaker

)角色:該角色對備忘錄角色進行管理,儲存和提供備忘錄。

使用場景

需要儲存和恢復資料的相關狀態場景;

提供乙個可回滾的操作;

需要監控副本的場景;

資料庫連線的事務管理使用的就是備忘錄模式。

package memento;

/** * 發起人,該角色記錄當前狀態,負責定義哪些屬於備份範圍

* 負責建立和恢復備份資料

* */

public class originator

//恢復乙個備忘錄

public void restorememento(memento memento)

public string getstate()

public void setstate(string state)

}

package memento;

/** * 備忘錄,該角色儲存發起人角色的內部狀態,在需要時提供

* 發起人所需要的內部狀態資料

* */

public class memento

public string getstate()

public void setstate(string state) }

package memento;

/** * 負責人,負責管理發起人、備忘錄

* */

public class caretaker

public void setmemento(memento memento)

}

package memento;

public class client

}

行為型模式 備忘錄模式

核心 就是儲存某個物件內部狀態的拷貝,這樣以後就可以將該物件恢復到原先的狀態。結構1 源髮器類 originator。2 備忘錄類 memento。3 負責人類 care take。開發中常見的應用場景 1 棋類遊戲中的,悔棋。2 普通軟體中的,撤銷操作。3 資料庫軟體中的,事務管理中的,回滾操作。...

備忘錄模式 物件行為型模式

一 意圖 在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可以將該物件恢復到原先儲存的狀態。二 適用性 以下情況使用備忘錄模式 三 結構 四 public class callofduty public void quit public memento crea...

行為型模式(6) 備忘錄模式

在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態,以便以後當需要時能將該物件恢復到原先儲存的狀態。該模式又叫快照模式。乙個物件中一般都封裝了很多屬性,這些屬性的值會隨著程式的執行而變化。當我們需要儲存某一時刻物件的某些值的時候,我們就再建立乙個物件,將當前物件中的一些屬性儲...