備忘錄模式

2021-09-24 19:05:40 字數 530 閱讀 7584

備忘錄物件是乙個用來儲存另外乙個物件內部狀態的快照的物件。備忘錄模式的用意是在不破壞封裝的條件下,將乙個物件的狀態 捕捉(capture)住,並外部化,儲存起來,從而可以在將來合適的時候把這個物件還原到儲存起來的狀態。

有時一些發起人物件的內部資訊在發起人物件以外的地方,當必須又發起人自己讀取,這時備忘錄模式可以把複雜的 發起人的內部資訊對其他物件遮蔽起來從而恰當的保持封裝的邊界。

本模式簡化了發起人,發起人不需要管理和儲存內部狀態的乙個個版本。客戶端可以自行的管理他們所需要的這些狀 態的版本

發起人角色狀態改變時,有可能這個狀態無效,這時候可以使用暫時儲存起來的備忘錄講狀態復原。

如果發起人角色的狀態需要完整的存到備忘錄物件中,那麼在資源消耗上備忘錄可能很昂貴。

當負責人將乙個物件儲存起來的時候,負責人可能並不知道這個狀態占用太多的儲存空間,從而無法提醒使用者乙個操作是否昂 貴。

當發起人角色改變的時候,有可能這個協議無效。如果狀態改變的成功率不高的話,不如採取「假如」協議模式。

檔案修改時間 2019-04-22 23:57:54

備忘錄模式

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

備忘錄模式

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

備忘錄模式

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