优雅的QSignleton (一) Singleton单例实现

来源:互联网 发布:备案域名交易平台top 编辑:程序博客网 时间:2024/06/05 09:48

接下来笔者来介绍如何用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方法。

结果:

注意:

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

相关链接:

  • QSingleton地址
  • 我的框架地址(QFramework)

转载请注明地址:凉鞋的笔记

微信公众号:liangxiegame

output/writing/Unity游戏框架搭建