Java設計模式(十五):備忘錄模式

備忘錄模式(memento pattern)

備忘錄模式(memento pattern):屬於對象的行爲模式,在不破壞封裝性的前提下,捕獲一個對象的內部狀態,並在該對象之外保存這個狀態。這樣以後就將該對象恢復到原鄉保存的狀態。


備忘錄模式UML圖

Java設計模式(十五):備忘錄模式

Java


備忘錄模式涉及的角色

發起人(Originator)角色:負責創建一個含有當前的內部狀態的備忘錄對象。並可使用備忘錄恢復內部狀態。備忘錄角色(Memento)角色:負責存儲 Originator 對象的內部狀態,並可防止 Originator 以外的其它對象訪問備忘錄 Memento。備忘錄包含兩個等效的接口:

  • 窄接口:管理者(Caretaker)對象只能看到備忘錄的窄接口(narrow interface),它只能將備忘錄傳遞給其它對象。

  • 寬接口:發起人(Originator)能夠看到一個寬接口,允許它訪問返回到先前狀態所需的所有數據。

管理者角色(Caretaker)角色:負責保存好備忘錄對象 Memento,不能對備忘錄的內容進行操作或檢查。


示例代碼

發起人類 Originator

Java設計模式(十五):備忘錄模式

Java

備忘錄類 Memento

Java設計模式(十五):備忘錄模式

Java

管理者類 Caretaker

Java設計模式(十五):備忘錄模式

Java

客戶端測試類 TestMementoPattern

Java設計模式(十五):備忘錄模式

Java


備忘錄模式使用場景

備忘錄模式比較適用於功能比較複雜的,但需要維護或記錄屬性歷史的類,或者需要保存的屬性只是衆多熟悉中的一小部分時,Originator 可以根據保存的 Memento 信息還原到前一狀態。

Java學習資料獲取(複製下段連接至瀏覽器即可)
data:text/html;charset=UTF-8;base64,5p625p6E5biI5a2m5Lmg6LWE5paZ5YWN6LS56aKG5Y+W6K+35Yqg5omj5omj5Y+35pivMTAxODkyNTc4MA==

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