定義
享元模式(英語:Flyweight Pattern)是一種軟體設計模式。它使用共享物件,用來儘可能減少記憶體使用量以及分享資訊給儘可能多的相似物件. 取自 wiki
享元模式是以提高性能為目的的設計模式,核心思想是:如果存在著多個可以重複使用的對象,那麼就只需要共享同一份就好,不需要每次都去創建新的對象。
用Unity的來比喻的話,就像是使用靜態變數Verctor2.one跟new Vector2(1,1)的感覺,而享元模式則是在一個 【享元工廠類】 中創建而且管理所需要共享的對象。
簡化應用
這邊講簡化是因為,跟一般別人介紹的不太一樣,但個人覺得只要有享元模式的概念就好,所以就簡化來使用
WeaponBaseAttr :需要共享的對象
WeaponAttrFactory:在工廠內獲得想要的數據
Client :用戶端去使用Factory
1 | public class WeaponBaseAttr |
這邊在工廠內也可以不要在工廠類初始化weapon的資料,也可以繼承WeaponBaseAttr,實作每個資料的內容,但我就是這樣用了XD
1 | public class WeaponAttrFactory |
然後就可以在Client端那邊,使用工廠的GetWeaponBaseAttr方法來獲取資料了,如果工廠模式用成靜態或單例會更方便一些
1 | public class Client : MonoBehaviour |