《研磨設計模式》讀書筆記之:備忘錄模式、享元模式

前言:本篇系看完《研磨設計模式》一書的個人理解和總結,可能存在不正確的地方,看時需要持懷疑態度。另外,所有的圖都是示意圖,示意,示。

備忘錄模式(Memento):

幾點解釋:

  1. 備忘錄模式的目的在於在不破壞對象封裝性的前提下,保存對象的部分或者全部的數據到對象之外,用於在需要的時候恢復對象到某一個備忘錄的狀態。
  2. 實現方式爲 創建一個私有的內部類用於保存對象的數據,這個內部類會實現一個 窄接口(沒有任何方法,標記用),外部調用 創建備忘錄的方法時,只會得到 窄接口類型的引用,對於對象內部的數據無法訪問和操作,這樣就保證了封裝性。
  3. 若是要保存整個對象的數據,則可以結合原型模式,使用克隆的方式來創建一個數據完全相同的新對象。此時內部類只需要保存新對象的一個引用即可。
  4. 保存是手段,恢復是目的。狹義的備忘錄模式強調不破壞對象的封裝性。

享元模式(Flyweight):

幾點解釋:

  1. 享元模式的本質在於將不變的部分分離出來並共享。實現功能的關鍵在於 通過享元工廠來獲取相應的數據。
  2. 其實可以將享元工廠看作是單例的一種實現方式,先查詢Map,沒有的情況下創建保存並返回(需要做好併發控制)。
  3. 策略模式、狀態模式都容易產生很多的細粒度的對象,這些對象往往是無狀態的,可以結合享元模式,減少不必要的內存浪費。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章