游戏中我们经常会用到单例化,而在客户端非线程的情况下,单例化函数是十分简单的,代码如下:
public static class Singleton<T> where T : new()
{
public static readonly T Inst = new T();
}
引用如下:
public static ClassName Inst => Singleton<ClassName>.Inst;
在别的类中,想要调用该函数的单例,只需要 ClassName.Inst.XXX 即可。
需要注意的是,在很多引擎中,如U3D、Laya等,如果该类继承于引擎,则需要用到上章所讲的订阅者模式,否则取到的数据为空。