设计模式之单例模式(Singleton)

单例,就是以私有类的构造函数,公开类的静态属性或者静态方法得到这个类型的实例,从而保证这个类只会存在一个实例。

单例模式的实现 

声明静态只读的锁对象

多线程下的双重锁

private SingleInstance(){}
private static SingleInstance _instance;
private static readonly object locker=new object();
public static SingleInstance GetInstance()
{
    if(_instance==null)
    {
       lock(locker)
       {
           if(_instance==null)
          {
           _instance=new SingleInstance();
          }
       }
    }
    return _instance;
}    

  c#与公共语言运行库也提供了一种“静态初始化”方法,这种方法不需要开发人员显示的编写线程安全代码,即可解决多线程环境下它是不安全的问题【MSDN】

public sealed class Singleton
{
         private static readonly Singleton _instance=new Singleton();
         private Singleton(){}
         public static Singleton GetInstance()
         {
           return _instance;
         }
}   

  参考资料:《大话设计模式》--程杰

posted @ 2014-10-30 22:23  天蓝若空  阅读(379)  评论(0编辑  收藏  举报