1. 程式人生 > >設計模式 (二十二)享元模式

設計模式 (二十二)享元模式

享元模式

享元模式是池技術的體現。定義如下: 使用共享物件可有效的支援大量的細粒度的物件。
目的是解決大象建立物件導致的記憶體溢位問題以及程式的效率問題。
享元模式中細粒度物件包含兩種狀態:

  • 內部狀態。 內部狀態是物件可共享出的資訊,儲存在享元內部且不會隨環境改變而改變。
  • 外部狀態。 外部狀態是物件得以依賴的一個標記,歲環境改變而改變,不可以共享的狀態。

享元模式目的就是運用共享技術,是細粒度物件可以共享,這裡主要用到池技術。

享元模式的優點

  • 減少應用程式建立的物件,降低程式記憶體佔用,增強程式效能

享元模式缺點

  • 提高系統複雜性

享元模式的使用場景

  • 系統中存在大量的相似物件
  • 需要使用緩衝池的場景
  • 享元模式要注意的問題

    • 執行緒安全問題