1.備忘錄模式的關鍵就是要在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可以利用該儲存的狀態實施恢復操作
2.結構圖:
原發器(originator):建立乙個備忘錄,並儲存他當前的內部狀態,也可以使用備忘錄來恢復其內部狀態
caretaker(負責人):負責人又稱為管理者,在負責人類中可以儲存乙個或者多個備忘錄物件,它只負責儲存物件,而不能修改物件,也無需知道物件的實現細節
3.優點:
缺點:4.使用場合:
如果必須儲存乙個物件在某乙個時刻的全部或者部分狀態,方便在以後需要的時候,可以把該物件恢復到先前的狀態,可以使用備忘錄模式
5.本質:
儲存和恢復內部狀態
6.應用例項:
遊戲進度的備忘:
遊戲角色(原發器角色):
通過呼叫角色狀態儲存箱完成角色狀態的儲存和恢復
角色窗台儲存箱(備忘錄角色):
只需要根據原發器中需要儲存的屬性進行修改和儲存即可
角色狀態管理者:
包含了對於角色狀態儲存箱的獲得和修改,用來完成對於角色狀態儲存箱的管理
客戶端的呼叫:
備忘錄模式和原型模式可以混合使用:
在原發器物件(發起人物件)建立備忘錄物件的時候,如果原發器物件中全部或者大部分的狀態都需要儲存,乙個簡潔的方式就是直接轉殖乙個原發器物件,也就是說,這個時候備忘錄物件裡面存放的是乙個原發器物件
個人理解:
備忘錄模式中有三個物件,分別是原發器,備忘錄物件,管理者物件
原發器就是在使用的過程中,正常的角色,裡面包含對於備忘錄物件依賴關係
備忘錄物件裡面的屬性就是原發器中需要進行儲存的屬性
管理者物件裡面有對於備忘錄物件聚合應用
可以看成是原發器和外界的乙個互動的作用
備忘錄模式
備忘錄模式 memento 在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可將該物件恢復到原先儲存的狀態。originator 發起人 負責建立乙個備忘錄memento,用以記錄當前時刻它的內部狀態,並可以使用備忘錄恢復內部狀態。originator可根據需要...
備忘錄模式
先從物件導向的三大特徵之一封裝說起。物件導向的封裝簡單點說就是把狀態 資料 和行為 操作這些資料的方法 放到一起,構成乙個單元,通常叫做類。乙個物件的行為是事先確定好的 靜態 一些指令碼,如果物件的狀態相同,物件看起來就是一樣的。所以當我們需要把乙個物件的某一時刻儲存起來,那麼只需要儲存它在那個時刻...
備忘錄模式
面臨問題 物件狀態的變化無端,如何回溯恢復物件在某個點的狀態?在軟體構建過程中,某些物件的狀態在轉換過程中,可能由於某種需要,要求程式能夠回溯到物件之前處於某個點時的狀態。如果使用一些公用介面來讓其他物件得到物件的狀態,便會暴露物件的細節實現。如何實現物件狀態的良好儲存與恢復?但同時又不會因此而破壞...