設計模式 備忘錄模式

2021-08-20 08:27:36 字數 940 閱讀 1090

1.uml類圖

originator負責建立乙個備忘錄memento,用以記錄當前時刻它的內部狀態,並可使用備忘錄恢復內部狀態。memento負責儲存originator物件內部狀態,並可防止originator以外的其他物件訪問備忘錄memento。caretaker負責儲存備忘錄memento。

2.示例**

public class originator

public void setmemento(memento memento)

public void show()

public string getstate()

public void setstate(string state)

public class memento

public string getstate()

public void setstate(string state)

// 此類存在的原因是這樣客戶端不用了解發起者所要儲存狀態的細節

public class caretaker

public void setmemento(memento memento)

public class client

3.特點

備忘錄模式在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可以將該物件恢復到原先儲存的狀態。其比較適合用於功能比較複雜的,但需要維護或記錄屬性歷史的類,或者需要儲存的屬性只是眾多屬性中的一小部分時,originator可以根據儲存的memento資訊還原到前一狀態。如果在某個系統中使用命令模式時,需要實現命令的撤銷功能,那麼命令模式可以使用備忘錄模式來儲存可撤銷操作的狀態。使用備忘錄可以把複雜的物件內部資訊對其他的物件遮蔽起來。

設計模式 備忘錄模式

錄入大批人員資料。正在錄入當前人資料時,發現上乙個人的資料錄錯了,此時需要恢復上乙個人的資料,再進行修改。word文件編輯時,突然電腦宕機或者斷電,再開啟時,可以看到word提示你恢復以前的文件。就死儲存某個物件內部狀態的拷貝,這樣以後就可以將該物件恢復到原先的狀態。源髮器類originator 備...

設計模式 備忘錄模式

備忘錄模式 memento pattern 在不破壞封閉的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可將該物件恢復到原先儲存的狀態。涉及角色 1.original 發起人 負責建立乙個備忘錄memento,用以記錄當前時刻自身的內部狀態,並可使用備忘錄恢復內部狀態。ori...

設計模式 備忘錄模式

備忘錄模式是一種行為模式,該模式業內關於儲存物件當前狀態,並且之後可以再次恢復到此狀態。備忘錄模式實現的方式需要保證被儲存的物件狀態不能被物件從外部訪問,目的是為了保護好被儲存的這些物件狀態的完整性以及內部實現不向外暴露。在不破壞封閉的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態,這樣...