【設計模式遊戲完美開發】享元模式

將公共的、不會改動的屬性字段提取出來成爲一個靜態類,作爲對象來保存在原有類中,用聚合方式獲取公有對象。

例如:一個敵人屬性有最大生命值、名稱、速度、武器類型、等級,敵人孵化器會產生若干個敵人,每個敵人都需要保存一份數據,而最大生命值、名稱、速度屬性假設基本不會改動,那麼這些不會改動的屬性就可以提取出來,作爲一個類CommonArr,而敵人類只需擁有這個CommonArr類對象 以及 武器類型、等級即可,佔用的空間就會節省。

這個敵人類的CommonArr類對象是以聚合的方式從外部獲取的,也就是CommonArr類對象是全局唯一的,所有敵人中的CommonArr對象都是同一個對象,這就是享元。

如果不用享元模式,每一個敵人都會消耗掉一個CommonArr類的空間來存儲相同內容的屬性,當敵人數量越多時這個內存開銷就越大,所以這個模式對於內存優化是很有幫助的。

保證類對象唯一可以使用字典形式 或 靜態類形式 或 單例模式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章