天天看點

備忘錄模式

備忘錄模式提供了一種彌補真實世界缺陷的方法,讓“後悔藥”在程式世界中可行,其定義如下:

Without violating encapsulation, capture and externalize an object's internal state so that the object can be restored

to this state later.

在不破壞封裝性的前提下,捕獲一個對象的内部狀态并在該對象之外儲存這個狀态。這樣以後就可将該對象恢複到原先儲存的狀态。

備忘錄模式

類圖中的三個角色:

1.Originator發起人角色:記錄目前時刻的内部狀态,負責定義哪些屬于備份範圍的狀态,負責建立和恢複備忘錄資料

2.Memento備忘錄角色:負責存儲Originator發起人對象的内部狀态,在需要的時候提供發起人需要的内部狀态。

3.Caretaker備忘錄管理者角色:對備忘錄進行管理,儲存和提供備忘錄

備忘錄模式的使用場景

1.需要儲存和恢複資料的相關狀體場景

2.提供一個復原的操作;比如Word中的CTRL+Z組合鍵

3.需要監控的副本場景中。例如要監控一個對象的屬性,但是監控又不應該作為系統的主業務來調用,它隻是邊緣應用,即使出現監控不

準,錯誤報警也影響不大,是以一般的做法是備份一個主線程中的對象,然後又分析程式來分析

4.資料連接配接的事務管理就是用的備忘錄模式

繼續閱讀