单例模式示例:
public sealed class WindowService
{//定义一个私有的静态全局变量来保存该类的唯一实例private static WindowService Service;//定义一个只读静态对象//且这个对象是在程序运行时创建的private static readonly object syncObject = new object();/// <summary>/// 构造函数必须是私有的/// 这样在外部便无法使用 new 来创建该类的实例/// </summary>private WindowService(){ }/// <summary>/// 定义一个全局访问点/// 设置为静态方法/// 则在类的外部便无需实例化就可以调用该方法/// </summary>/// <returns></returns>public static WindowService GetInstance(){//这里可以保证只实例化一次//即在第一次调用时实例化//以后调用便不会再实例化//第一重 singleton == nullif (Service == null){lock (syncObject){//第二重 singleton == nullif (Service == null){Service = new WindowService();}}}return Service;}
}
精简一下代码
#region 单例模式
private static 替换成类名 _替换成类名;
private static readonly object syncObject = new object();
private 替换成类名() { }
public static 替换成类名 GetInstance()
{if (_替换成类名 == null)lock (syncObject)if (_替换成类名 == null)_替换成类名 = new 替换成类名();return _替换成类名;
}
#endregion