概念: 用于性能優(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)之后钻心,可以用相對較少的共享對象取代大量對象凄硼。