備忘錄模式總結

2021-09-29 15:09:40 字數 1150 閱讀 5239

每個人都有犯錯誤的時候,都希望有種「後悔藥」能彌補自己的過失,讓自己重新開始,但現實是殘酷的。在計算機應用中,客戶同樣會常常犯錯誤,能否提供「後悔藥」給他們呢?當然是可以的,而且是有必要的。這個功能由「備忘錄模式」來實現。

其實很多應用軟體都提供了這項功能,如 word、記事本、photoshop、eclipse 等軟體在編輯時按 ctrl+z 組合鍵時能撤銷當前操作,使文件恢復到之前的狀態;還有在 ie 中的後退鍵、玩遊戲時的中間結果存檔功能、資料庫與作業系統的備份操作、棋類遊戲中的悔棋功能等都屬於這類。

備忘錄模式能記錄乙個物件的內部狀態,當使用者後悔時能撤銷當前操作,使資料恢復到它原先的狀態。

1、備忘錄模式的定義:

在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態,以便以後當需要時能將該物件恢復到原先儲存的狀態。該模式又叫快照模式。

2、備忘錄模式的角色:

a、發起人(originator)角色:記錄當前時刻的內部狀態資訊,提供建立備忘錄和恢復備忘錄資料的功能,實現其他業務功能,它可以訪問備忘錄裡的所有資訊。

b、備忘錄(memento)角色:負責儲存發起人的內部狀態,在需要的時候提供這些內部狀態給發起人。

c、管理者(caretaker)角色:對備忘錄進行管理,提供儲存與獲取備忘錄的功能,但其不能對備忘錄的內容進行訪問與修改。

3、備忘錄模式結構圖:

4、備忘錄模式應用場景:

a、需要儲存與恢復資料的場景,如玩遊戲時的中間結果的存檔功能。

b、需要提供乙個可回滾操作的場景,如 word、記事本、photoshop,eclipse 等軟體在編輯時按 ctrl+z 組合鍵,還有資料庫中事務操作。

5、備忘錄模式的優點:

a、提供了一種可以恢復狀態的機制。當使用者需要時能夠比較方便地將資料恢復到某個歷史的狀態。

b、實現了內部狀態的封裝。除了建立它的發起人之外,其他物件都不能夠訪問這些狀態資訊。

c、簡化了發起人類。發起人不需要管理和儲存其內部狀態的各個備份,所有狀態資訊都儲存在備忘錄中,並由管理者進行管理,這符合單一職責原則。

6、備忘錄模式的缺點:

資源消耗大,如果要儲存的內部狀態資訊過多或者特別頻繁,將會占用比較大的記憶體資源。

備忘錄模式總結

備忘錄模式 在不破壞封裝的情況下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可以將該物件恢復到原先儲存的狀態。備忘錄模式理解 就是備忘錄,將我們更改之前的資料儲存在備忘錄中,當我們要取消更改,或者更改錯誤,想要返回之前的時候,通過備忘錄管理者 就像是乙個介面,專門用來提取備忘錄中...

備忘錄模式

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

備忘錄模式

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