含義
單例模式是一種常用的軟件設(shè)計(jì)模式玫锋。在它的核心結(jié)構(gòu)中只包含一個(gè)被稱(chēng)為單例類(lèi)的特殊類(lèi)释涛。通過(guò)單例模式可以保證系統(tǒng)中一個(gè)類(lèi)只有一個(gè)實(shí)例而且該實(shí)例易于外界訪問(wèn)甲喝,從而方便對(duì)實(shí)例個(gè)數(shù)的控制并節(jié)約系統(tǒng)資源悠咱。如果希望在系統(tǒng)中某個(gè)類(lèi)的對(duì)象只能存在一個(gè)荣瑟,單例模式是最好的解決方案扫皱。
而在Untiy當(dāng)中足绅,我們通常需要一個(gè)腳本去記錄與管理一些貫穿整個(gè)游戲場(chǎng)景伊始的數(shù)據(jù),比如玩家的成績(jī)韩脑,生命值氢妈,關(guān)卡等級(jí)等等,這個(gè)時(shí)候就需要一個(gè)腳本始終處于被喚醒狀態(tài)段多,并且只有一個(gè)首量,而這個(gè)時(shí)候,單例模式則是最好的解決方案进苍。
單例的應(yīng)用
實(shí)現(xiàn)方式一
優(yōu)點(diǎn):不需要重構(gòu)什么加缘,直接編碼。方便其他類(lèi)使用觉啊。
缺點(diǎn):每個(gè)要實(shí)現(xiàn)單例的類(lèi)都需要手動(dòng)寫(xiě)上相同的代碼拣宏,代碼重復(fù)對(duì)我們來(lái)說(shuō)可不是好事情。同時(shí)需要把實(shí)現(xiàn)單例的類(lèi)手動(dòng)綁定到游戲?qū)ο笊喜趴梢允褂谩?/p>
實(shí)現(xiàn)方式二
優(yōu)點(diǎn):通過(guò)代碼重構(gòu)杠人,去除掉了重復(fù)的代碼勋乾。想具有單例功能的類(lèi)宋下。只需要繼承模板基類(lèi)就可以具有單例的作用。
缺點(diǎn):模板單例不需要綁定到游戲?qū)ο蠹潜黄渌_本調(diào)用的需要手動(dòng)綁定到游戲?qū)ο笊喜趴梢允褂谩?/p>
實(shí)現(xiàn)方式三
繼承模板基類(lèi)杨凑,實(shí)現(xiàn)方式同方式二里的第二步一樣。
優(yōu)點(diǎn):不需要手動(dòng)綁定單例到游戲?qū)ο缶涂梢允褂谩?br>
缺點(diǎn):這些都是游戲?qū)ο蟀诿粒赨ntiy中只能在主線(xiàn)程中進(jìn)行調(diào)用。所以網(wǎng)絡(luò)多線(xiàn)程方面會(huì)產(chǎn)生單例的不唯一性蜒程,在這里就可以忽略了绅你。