区别于单例模式(一)的创建。以下统称为单例1 单例2
单例1 的对象创建时间为调用CreateInstance的时候
单例2 的对象则是只要调用了类里面的方法都会先去调用静态构造函数完成对象的创建(例如我们在调用FuncA的时候 CLR会先去调用静态构造函数)
public class SomeThing
{
/// <summary>
/// 1.私有化构造函数
/// </summary>
private SomeThing()
{
//do somthing.....
}
/// <summary>
/// 2.全局唯一的静态变量(重用)
/// </summary>
private static SomeThing _someThing = null;
/// <summary>
/// 3.静态构造函数只会被调用一次 线程安全
/// </summary>
static SomeThing()
{
_someThing = new SomeThing();
}
/// <summary>
/// 4.公开的静态方法来提供对象的实例
/// </summary>
/// <returns></returns>
public static SomeThing CreateInstance()
{
return _someThing;
}
public static void FuncA()
{
//do somthing...
}
}