備忘錄模式
在不破壞原封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣,以後就可以將該物件恢復到原先儲存的狀態。
備忘錄模式角色
發起人(
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) 備忘錄模式
在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態,以便以後當需要時能將該物件恢復到原先儲存的狀態。該模式又叫快照模式。乙個物件中一般都封裝了很多屬性,這些屬性的值會隨著程式的執行而變化。當我們需要儲存某一時刻物件的某些值的時候,我們就再建立乙個物件,將當前物件中的一些屬性儲...