mirror of
https://gitee.com/jisol/jisol-game/
synced 2025-06-26 19:34:47 +00:00
53 lines
1.2 KiB
C#
53 lines
1.2 KiB
C#
namespace JNGame.Runtime.Util
|
|
{
|
|
public abstract class SingletonUtil<T> where T : Singleton<T>,new() {
|
|
|
|
public static T Instance{
|
|
get{
|
|
if (Singleton<T>.ins == null)
|
|
{
|
|
Singleton<T>.ins = new T();
|
|
Singleton<T>.ins.Init();
|
|
}
|
|
return Singleton<T>.ins;
|
|
}
|
|
}
|
|
|
|
public static void Clean()
|
|
{
|
|
if(Singleton<T>.ins != null)
|
|
Singleton<T>.ins.Clean();
|
|
Singleton<T>.ins = null;
|
|
}
|
|
|
|
}
|
|
|
|
public class Singleton<T> {
|
|
|
|
public static T ins;
|
|
|
|
public virtual void Init(){}
|
|
public virtual void Clean(){}
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 通用单例。
|
|
/// </summary>
|
|
/// <typeparam name="T">泛型T。</typeparam>
|
|
public class TSingleton<T> where T : new()
|
|
{
|
|
private static T _instance;
|
|
public static T Instance
|
|
{
|
|
get
|
|
{
|
|
if (null == _instance)
|
|
{
|
|
_instance = new T();
|
|
}
|
|
return _instance;
|
|
}
|
|
}
|
|
}
|
|
} |