將公共的、不會改動的屬性字段提取出來成爲一個靜態類,作爲對象來保存在原有類中,用聚合方式獲取公有對象。
例如:一個敵人屬性有最大生命值、名稱、速度、武器類型、等級,敵人孵化器會產生若干個敵人,每個敵人都需要保存一份數據,而最大生命值、名稱、速度屬性假設基本不會改動,那麼這些不會改動的屬性就可以提取出來,作爲一個類CommonArr,而敵人類只需擁有這個CommonArr類對象 以及 武器類型、等級即可,佔用的空間就會節省。
這個敵人類的CommonArr類對象是以聚合的方式從外部獲取的,也就是CommonArr類對象是全局唯一的,所有敵人中的CommonArr對象都是同一個對象,這就是享元。
如果不用享元模式,每一個敵人都會消耗掉一個CommonArr類的空間來存儲相同內容的屬性,當敵人數量越多時這個內存開銷就越大,所以這個模式對於內存優化是很有幫助的。
保證類對象唯一可以使用字典形式 或 靜態類形式 或 單例模式