概念: 用于性能優(yōu)化的模式,通俗講就是用時間換取空間的優(yōu)化模式。核心是運用共享技術(shù)來有效的支持大量細粒度的對象。
目標:盡量減少對共享對象的數(shù)量。
享元模式的實現(xiàn),主要基于內(nèi)部狀態(tài)與外部狀態(tài)。
內(nèi)部狀態(tài): 1. 內(nèi)部狀態(tài)存儲于對象的內(nèi)部; 2. 內(nèi)部狀態(tài)可以被一下對象共享; 3. 內(nèi)部狀態(tài)獨立于具體的場景,通常不會改變。
外部狀態(tài): 外部狀態(tài)取決于具體的場景,并根據(jù)場景而變化,外部狀態(tài)不能被共享。
享元模式可以使用的場景:
- 程序中使用了大量的相似對象;
- 由于使用了大量對象,造成了很大的內(nèi)存開銷;
- 對象的大多數(shù)狀態(tài)都可以變?yōu)橥獠繝顟B(tài);
- 剝離出對象的外部狀態(tài)之后,可以用相對較少的共享對象取代大量對象。