【游戲開發(fā)設(shè)計(jì)模式】單例模式,要提防的設(shè)計(jì)模式??!
2023-05-14 20:57 作者:學(xué)虛幻引擎的小王 | 我要投稿

【游戲開發(fā)設(shè)計(jì)模式】單例模式,要提防的設(shè)計(jì)模式??!
定義:保證類只有一個(gè)實(shí)例,且具有全局訪問點(diǎn)
為什么要避免

對于需要記錄到文件 每一次修改狀態(tài)的系統(tǒng)而言,只有一個(gè)實(shí)例是非常重要的特性
代碼解釋:當(dāng)實(shí)例存在并且不是我的時(shí)候,刪除

功能:實(shí)現(xiàn)全局訪問點(diǎn)
每個(gè)其他系統(tǒng),會訪問玩家管理系統(tǒng),所以玩家管理系統(tǒng)需要是一個(gè)全局變量

C#實(shí)現(xiàn):實(shí)例 靜態(tài)化(Static)
關(guān)鍵詞,static 實(shí)現(xiàn)單例的全局訪問功能

代碼:

優(yōu)點(diǎn)

- 節(jié)約內(nèi)存
- 節(jié)省性能
- 方便,隨時(shí)隨地使用

問題
- 促進(jìn)耦合,維護(hù)困難
- 每個(gè)模塊,困難修改 Bug

2 擴(kuò)展難度上升
耦合程度高

最后:
合理評估 單例模式 的利弊
標(biāo)簽: