单例模式的标准代码:
原则:和编码规范一致 尽量少些嵌套 有问题时 及时return
class SingleTonClass
{
//为确保唯一性 把单例的实例声明为静态
public static SingleTonClass singleInstance = null;
//为了线程安全 加锁需要锁住的对象 为了确保锁住的是同一个对象
public static readonly object lockObj = new object();
//构造函数声明为private 外部不能创建
private SingleTonClass()
{ }
//如果createInstance方法不是静态的 那么就需要用实例来调用
//如果可以取到实例(单例只有一个实例)就不需要调用方法了
//因此createInstance method必须是static
public static SingleTonClass Instance()
{
if (instance == null)
{
lock (LockObject)
{
if (instance == null)
{
instance = new SvcClientRegistrar();
}
}
}
return instance;
}