标签:key div 不能 构造方法 进程 ado 辅助 summary returns
最近用到了单例模式,以下是个人理解,如有不对的请各路大神指点
1.简介:单例模式严格定义一个类只有一个实例,并提供一个他的全局访问点。
2.解决问题:当一个类只是要求可以创建一个实例时,需要使用单例模式。
3.构成:由一个私有变量,一个私有构造函数和一个公共的方法构成。
4.实例:
public class Singleton
{
/// <summary>
/// 程序运行时,创建一个静态只读的进程辅助对象
/// </summary>
private static readonly object _object=new object();
/// <summary>
/// 构造方法私有,外键不能通过New类实例化此类
/// </summary>
private static Singleton instance;
//私有构造方法Singleton(),外界不能使用new关键字来创建此类的实例了。
private Singleton() { }
/// <summary>
/// 此方法是本类实例的唯一全局访问点
/// (双重加锁 Double-Check Locking)
/// </summary>
/// <returns></returns>
public static Singleton GetInstance()
{
//先判断实例是否存在,不存在再加锁处理
if (instance==null)
{
//在同一时刻加了锁的那部分程序只有一个线程可以进入,
lock (_object)
{
//如实例不存在,则New一个新实例,否则返回已有实例
if (instance==null)
{
instance = new Singleton();
}
}
}
return instance;
}
}
客户端调用:
class Program
{
static void Main(string[] args)
{
var singleton1 = Singleton.GetInstance();
var singleton2 = Singleton.GetInstance();
if (singleton1==singleton2)
{
Console.WriteLine("2个实例相同");
}
Console.ReadKey();
}
}
标签:key div 不能 构造方法 进程 ado 辅助 summary returns
原文地址:http://www.cnblogs.com/mili3/p/7675711.html