備忘錄模式

2021-09-24 02:34:54 字數 1596 閱讀 6387

1.備忘錄模式的關鍵就是要在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可以利用該儲存的狀態實施恢復操作

2.結構圖:

原發器(originator):建立乙個備忘錄,並儲存他當前的內部狀態,也可以使用備忘錄來恢復其內部狀態

caretaker(負責人):負責人又稱為管理者,在負責人類中可以儲存乙個或者多個備忘錄物件,它只負責儲存物件,而不能修改物件,也無需知道物件的實現細節

3.優點:

缺點:4.使用場合:

如果必須儲存乙個物件在某乙個時刻的全部或者部分狀態,方便在以後需要的時候,可以把該物件恢復到先前的狀態,可以使用備忘錄模式

5.本質:

儲存和恢復內部狀態

6.應用例項:

遊戲進度的備忘:

遊戲角色(原發器角色):

通過呼叫角色狀態儲存箱完成角色狀態的儲存和恢復

角色窗台儲存箱(備忘錄角色):

只需要根據原發器中需要儲存的屬性進行修改和儲存即可

角色狀態管理者:

包含了對於角色狀態儲存箱的獲得和修改,用來完成對於角色狀態儲存箱的管理

客戶端的呼叫:

備忘錄模式和原型模式可以混合使用:

在原發器物件(發起人物件)建立備忘錄物件的時候,如果原發器物件中全部或者大部分的狀態都需要儲存,乙個簡潔的方式就是直接轉殖乙個原發器物件,也就是說,這個時候備忘錄物件裡面存放的是乙個原發器物件

個人理解:

備忘錄模式中有三個物件,分別是原發器,備忘錄物件,管理者物件

原發器就是在使用的過程中,正常的角色,裡面包含對於備忘錄物件依賴關係

備忘錄物件裡面的屬性就是原發器中需要進行儲存的屬性

管理者物件裡面有對於備忘錄物件聚合應用

可以看成是原發器和外界的乙個互動的作用

備忘錄模式

備忘錄模式 memento 在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可將該物件恢復到原先儲存的狀態。originator 發起人 負責建立乙個備忘錄memento,用以記錄當前時刻它的內部狀態,並可以使用備忘錄恢復內部狀態。originator可根據需要...

備忘錄模式

先從物件導向的三大特徵之一封裝說起。物件導向的封裝簡單點說就是把狀態 資料 和行為 操作這些資料的方法 放到一起,構成乙個單元,通常叫做類。乙個物件的行為是事先確定好的 靜態 一些指令碼,如果物件的狀態相同,物件看起來就是一樣的。所以當我們需要把乙個物件的某一時刻儲存起來,那麼只需要儲存它在那個時刻...

備忘錄模式

面臨問題 物件狀態的變化無端,如何回溯恢復物件在某個點的狀態?在軟體構建過程中,某些物件的狀態在轉換過程中,可能由於某種需要,要求程式能夠回溯到物件之前處於某個點時的狀態。如果使用一些公用介面來讓其他物件得到物件的狀態,便會暴露物件的細節實現。如何實現物件狀態的良好儲存與恢復?但同時又不會因此而破壞...