享元模式定義
運用共享技術(shù)有效的支持大量細(xì)粒度對象的復(fù)用,系統(tǒng)只使用少量的對象,而這些對象都很相似,狀態(tài)變化很小,可以實現(xiàn)對象的多次復(fù)用。由于享元模式要求能夠共享對象必須是細(xì)粒度對象,因此他又稱為輕量級模式,是一種結(jié)構(gòu)性模式。
享元模式結(jié)構(gòu)圖
image.png
內(nèi)部狀態(tài)和外部狀體
內(nèi)部狀態(tài)是純粹在享元對象內(nèi)部并且不會隨環(huán)境改變而改變的狀態(tài),內(nèi)部狀態(tài)可以共享,
外部狀態(tài)是隨著環(huán)境變化而變化的,不可以共享狀態(tài),享元對象的外部狀態(tài)通常有客戶端保存,并在享元對象別創(chuàng)建之后,需要使用的時候,在傳入到享元對象內(nèi)部。
單純享元模式和復(fù)合享元模式
單純享元模式中所有具體享元類都是可以共享的。不存在非共享具體享元類。
復(fù)合享元模式,將一些單純享元對象使用組合模式加以組合,還可以形成復(fù)合享元對象,這樣的復(fù)合享元對象本身不能共享,但是他們可以分解成為單純享元對象,而后者則可以共享。
享元模式優(yōu)缺點
享元模式適用場景