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只适合实现没有继承其他父类的单例。
相关链接:
更多内容
- 
QFramework 地址:https://github.com/liangxiegame/QFramework 
- 
QQ 交流群:623597263 
- 
Unity 进阶小班: - 主要训练内容:
- 框架搭建训练(第一年)
- 跟着案例学 Shader(第一年)
- 副业的孵化(第二年、第三年)
 
- 权益、授课形式等具体详情请查看《小班产品手册》:https://liangxiegame.com/master/intro
 
- 主要训练内容:
- 
关注公众号:liangxiegame 获取第一时间更新通知及更多的免费内容。 
 
                     
                    
                 
                    
                

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号