在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態,便於將該物件恢復到原先儲存的狀態。
originator:發起人角色(記錄當前時刻的內部狀態,負責定義哪些屬於備份範圍的狀態,負責建立和恢復被萬福路資料)
public class originator
public void setstate(string _state)
public memento creatememento()
public void restorememento(memento _memento)
}
memento:備忘錄角色(負責儲存originator發起人物件的內部狀態,在需要的時候提供發起人需要的內部狀態)
public class memento
public string getstate()
public void setstate(string state)
}
caretaker:備忘錄管理員角色(對備忘錄進行管理、儲存和提供備忘)
public class caretaker
public void setmemento(memento memento)
}
場景類:
public class client
}
輸出結果:
建立乙個備忘錄
恢復乙個備忘錄
便於備份副本,適用於儲存和恢復資料,但物件數量難以控制,占用資源,影響效能。
設計模式 備忘錄模式
錄入大批人員資料。正在錄入當前人資料時,發現上乙個人的資料錄錯了,此時需要恢復上乙個人的資料,再進行修改。word文件編輯時,突然電腦宕機或者斷電,再開啟時,可以看到word提示你恢復以前的文件。就死儲存某個物件內部狀態的拷貝,這樣以後就可以將該物件恢復到原先的狀態。源髮器類originator 備...
設計模式 備忘錄模式
備忘錄模式 memento pattern 在不破壞封閉的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可將該物件恢復到原先儲存的狀態。涉及角色 1.original 發起人 負責建立乙個備忘錄memento,用以記錄當前時刻自身的內部狀態,並可使用備忘錄恢復內部狀態。ori...
設計模式 備忘錄模式
備忘錄模式是一種行為模式,該模式業內關於儲存物件當前狀態,並且之後可以再次恢復到此狀態。備忘錄模式實現的方式需要保證被儲存的物件狀態不能被物件從外部訪問,目的是為了保護好被儲存的這些物件狀態的完整性以及內部實現不向外暴露。在不破壞封閉的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態,這樣...