簡(jiǎn)介
- 享元模式(FlyWeight)是一種用于性能優(yōu)化的模式,運(yùn)用共享技術(shù)來(lái)有效支持大量細(xì)粒度的對(duì)象鼓寺。主要用于
當(dāng)系統(tǒng)中創(chuàng)建了大量類(lèi)似的對(duì)象從而導(dǎo)致內(nèi)存占用過(guò)時(shí)的情況配并。 - 享元模式要求將對(duì)象的屬性劃分為內(nèi)部狀態(tài)(屬性)和外部狀態(tài)(屬性)光酣。目標(biāo)是盡量減少共享對(duì)象的數(shù)量勾缭。
如何劃分內(nèi)部對(duì)象和外部對(duì)象
- 內(nèi)部狀態(tài)存儲(chǔ)于對(duì)象內(nèi)部。
- 內(nèi)部狀態(tài)可以被一些對(duì)象共享目养。
- 內(nèi)部狀態(tài)獨(dú)立于具體的場(chǎng)景俩由,通常不會(huì)改變。
- 外部狀態(tài)取決于具體的場(chǎng)景癌蚁,并根據(jù)場(chǎng)景而變化幻梯,外部狀態(tài)不能被共享。
何時(shí)使用
- 一個(gè)程序中使用了大量相似的對(duì)象
- 由于使用了大量對(duì)象努释,造成很大的內(nèi)存開(kāi)銷(xiāo)
- 對(duì)象的大多數(shù)狀態(tài)都可以變?yōu)橥獠繝顟B(tài)
- 剝離出對(duì)象的外部狀態(tài)后碘梢,可以用相對(duì)較少的共享對(duì)象取代大量對(duì)象。