Unity 游戲框架搭建 (二) 單例的模板

上一篇文章中說(shuō)到的manager of managers,其中每個(gè)manager都是單例的實(shí)現(xiàn),當(dāng)然也可以使用靜態(tài)類實(shí)現(xiàn),但是相比于靜態(tài)類的實(shí)現(xiàn),單例的實(shí)現(xiàn)更為通用,可以適用大多數(shù)情況。如何設(shè)計(jì)這個(gè)單例的模板?
??先分析下需求,當(dāng)設(shè)計(jì)一個(gè)manager時(shí)候,我們希望整個(gè)程序只有一個(gè)該manager對(duì)象實(shí)例,一般馬上能想到的實(shí)現(xiàn)是這樣的:

public class XXXManager {

private static XXXManager instance = null;

private XXXManager {
    // to do ...
}

public static XXXManager() {
    if (instance == null)
    {
        instance = new XXXManager();
    }
    return instance;
}

}

如果一個(gè)游戲需要10個(gè)各種各樣的manager,那么以上這些代碼要復(fù)制粘貼好多遍。重復(fù)的代碼太多!!!想要把重復(fù)的代碼抽離出來(lái),怎么辦?答案是引入泛型。實(shí)現(xiàn)如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;

namespace QFramework {
public abstract class QSingleton<T> where T : QSingleton<T>
{
protected static T instance = null;

    protected QSingleton()
    {
    }

    public static T Instance()
    {
        if (instance == null)
        {
            // 如何new 一個(gè)T???
        }

        return instance;
    }
}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 上一篇文章中說(shuō)到的manager of managers,其中每個(gè)manager都是單例的實(shí)現(xiàn),當(dāng)然也可以使用靜態(tài)...
    _橙癮閱讀 270評(píng)論 0 0
  • 轉(zhuǎn)載請(qǐng)注明地址:涼鞋的筆記 上一篇文章中說(shuō)到的manager of managers,其中每個(gè)manager都是單...
    光明程輝閱讀 554評(píng)論 0 0
  • 上一篇文章中說(shuō)到的 manager of managers,其中每個(gè) manager 都是單例的實(shí)現(xiàn),當(dāng)然也可以使...
    涼鞋的筆記閱讀 777評(píng)論 0 1
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,680評(píng)論 19 139
  • 2016年,出現(xiàn)了一本現(xiàn)象級(jí)的對(duì)于中國(guó)國(guó)民性的心理研究的書(shū),書(shū)名是《巨嬰國(guó)》,作者是中國(guó)著名的精神學(xué)家武志紅。但是...
    李秦豪閱讀 2,490評(píng)論 1 3

友情鏈接更多精彩內(nèi)容