zoukankan      html  css  js  c++  java
  • Unity 游戏框架搭建 2017 (十四) 优雅的 QSingleton (一) Singleton 单例实现

    接下来笔者来介绍如何用QSingleton实现一个简单的单例。
    代码如下。

    • Singleton.cs
    namespace QFramework.Example
    {
        using UnityEngine;
    
        class Class2Singleton :QSingleton<Class2Singleton>
        {
            private static int mIndex = 0;
    
            private Class2Singleton() {}
    
            public override void OnSingletonInit()
            {
                mIndex++;
            }
    
            public void Log(string content)
            {
                Debug.Log("Class2Singleton" + mIndex + ":" + content);
            }
        }
    
        public class Singleton : MonoBehaviour
        {
            private void Start()
            {
                Class2Singleton.Instance.Log("Hello World!");
    
                // delete instance
                Class2Singleton.Instance.Dispose();
    
                // a differente instance
                Class2Singleton.Instance.Log("Hello World!");
            }
        }
    }
    

    只需简单继承QSingleton,并声明非public构造方法即可。如果有需要获取单例初始化的时机,则可以选择重载OnSingletonInit方法。

    结果:

    Hello World!
    Hello World!

    注意:

    • 建议在OnSingletonInit方法中进行单例的初始化操作而不是在构造函数中。
    • QSingleton.cs只适合实现没有继承其他父类的单例。

    相关链接:

    更多内容

  • 相关阅读:
    操作系统---学习笔记00
    操作系统---学习笔记0
    2015/07/16入园啦!
    1-1 console的用法
    2.3 js基础--DOM
    1.2 js基础
    1.1 js基础
    信息收集(1)
    Android概述
    从一次失败的比赛经历引发的思考
  • 原文地址:https://www.cnblogs.com/liangxiegame/p/you-ya-deQSignleton-yi-Singleton-dan-li-shi-xian.html
Copyright © 2011-2022 走看看