public class Tools
{
//禁止外界通过new的方式获取该类的实例
private Tools() { }
//1 单例最简单写法-不推荐使用
public static Tools myInstance = new Tools();
//2 公有静态属性的方式-推荐使用
private static Tools _instance;
public static Tools instance
{
get
{
if (_instance == null)
{
_instance = new Tools();
}
return _instance;
}
}
//3 公有静态方法的方式
public static Tools GetInstance()
{
if (_instance == null)
{
_instance = new Tools();
}
return _instance;
}
public void Test()
{
Debug.Log("Tools Test");
}
}
在别的类使用
Tools.instance.Test();
Tools.GetInstance().Test();
Tools.myInstance.Test();
单例模式特点:
在内存中只存在一个实例,减少了内存开销,容易被外界所访问;
自行实例化(私有构造函数,不允许外界对其进行实例化)。
生命周期不消毁。
如果过度使用单例模式,将会导致代码耦合度非常高,脚本与脚本之间的耦合,代码的后续拓展变得非常麻烦。