优雅的QSignleton (一) Singleton单例实现
发表于2017-11-07
接下来笔者来介绍如何用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只适合实现没有继承其他父类的单例。
相关链接:
转载请注明地址:凉鞋的笔记
微信公众号:liangxiegame