您的位置:首页 > 其它

设计模式<一>-单例模式

2016-09-13 11:18 344 查看
单例模式:程序运行只有一个实例,主要用于管理器,Model居多,优点全局访问,数据共享.

namespace FrameWork
{
public abstract class Singleton<T> where T : Singleton<T>
{
private static T _instance = null;

public static T Instance
{
get
{
if (_instance == null)
{
if(!TypeUtils.IsAssignable(typeof(MonoBehaviour), typeof(T)))
{
ConstructorInfo[] ctors = typeof(T).GetConstructors(BindingFlags.Instance | BindingFlags.NonPublic);
ConstructorInfo ctor = Array.Find(ctors, c => c.GetParameters().Length == 0);
if (ctor == null)
throw new Exception("Non-public constructor not found!");
_instance = ctor.Invoke(null) as T;
}
}
return _instance;
}
}

//重置single都需要调用init初始化
public virtual void init(params object[] paraList)
{

}

public virtual void clear()
{
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: