24 Memento日誌模式(行爲型)

24 Memento(行爲型)

    • 動機:(遊戲存檔)
      • 在不破壞封裝的條件下,將一個對象的狀態捕捉住,並外部化,存儲起來,從而可以在將來合適的時候把這個對象還原到存儲起來的狀態。
      • 有時需要記錄對象的內部狀態。
      • 當實現檢查點和撤銷機制時,這是必需的,這些機制允許用戶退出臨時操作或從錯誤中恢復。您必須將狀態信息保存在某個地方,以便可以將對象恢復到以前的狀態。例如,撤銷、重做、歷史記錄、快照。
      • 但是對象通常封裝了它們的部分或全部狀態,使得其他對象無法訪問它們,並且不可能從外部保存它們。
      • 暴露這種狀態會違反封裝,這會損害應用程序的可靠性和可擴展性
    • 什麼時候用:
      • 必須保存對象狀態的快照,以便稍後將其恢復到該狀態,而獲取該狀態的直接接口將公開實現細節並破壞對象的封裝。
    • 結構:

 

    • 協作:
    • 好處:
      • 保證封裝性
      • 化簡Originator
    • 缺點:
      • 代價昂貴
      • Hidden costs in caring for mementos.
    • 例:

 

    • 類圖:

 

 

 

 

 

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