单例模式官方定义:确保一个类只有一个实例,并提供一个全局访问点。
直接上代码
/// <summary>
/// 单例模式
/// </summary>
public class Singleton
{
//定义静态字段存储该类的实例
private static Singleton _instance;
//定义标识确保线程同步
private static readonly object _asyncLock=new object();
/// <summary>
/// 定义私有构造函数使外界不能通过new来创建实例。
/// </summary>
private Singleton()
{
}
/// <summary>
/// 定义公有方法,外界调用该方法即可返回实例。(提供一个全局访问点)
/// 此方法实现双重锁,避免异步问题。
/// </summary>
/// <returns></returns>
public static Singleton GetSingleton()
{
if (_instance == null)
{
lock (_asyncLock)
{
if (_instance == null)
{
_instance = new Singleton();
}
}
}
return _instance;
}
}