設計模式學習總結(19) 備忘錄模式

本系列主要記錄設計模式的意圖是什麼,它要解決一個什麼問題,什麼時候可以使用它;它是如何解決的,掌握它的結構圖,記住它的關鍵代碼;能夠想到至少兩個它的應用實例,一個生活中的,一個軟件中的;這個模式的優缺點是什麼,其有哪些使用場景,在使用時要注意什麼。

尊重作者,轉載請註明曄陽的Bloghttp://blog.csdn.net/hacke2

 

 

19.備忘錄模式


意圖:在不破壞封裝性的前提下,捕獲一個對象的內部狀態,並在該對象之外保存這個狀態。
主要解決:所謂備忘錄模式就是在不破壞封裝的前提下,捕獲一個對象的內部狀態,並在該對象之外保存這個狀態,這樣可以在以後將對象恢復到原先保存的狀態
什麼時候使用:很多時候我們總是需要記錄一個對象的內部狀態,這樣做的目的就是爲了允許用戶取消不確定或者錯誤的操作,能夠恢復到他原先的狀態,使得他有“後悔藥”可吃
如何解決 :通過一個備忘錄類專門存儲對象狀態
結構圖

關鍵代碼:客戶不與備忘錄類耦合,與備忘錄管理類耦合
應用實例:1、後悔藥 2、打遊戲時的存檔 3、Windows裏的ctri + z  4、IE中的後退 4、數據庫的事務管理
優點:1、 給用戶提供了一種可以恢復狀態的機制。可以是用戶能夠比較方便地回到某個歷史的狀態。
2、 實現了信息的封裝。使得用戶不需要關心狀態的保存細節。
缺點:消耗資源。如果類的成員變量過多,勢必會佔用比較大的資源,而且每一次保存都會消耗一定的內存。
使用場景:1、需要保存/恢復數據的相關狀態場景 2、提供一個可回滾的操作
注意事項:1、爲了符合迪米特原則,還要增加 一個管理備忘錄的類 2、爲了節約內存,可使用原型模式+備忘錄模式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章