设计模式之单例模式(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; } }
参考资料:《大话设计模式》--程杰
真正的认识自己,才能做好自己,做好自己,才能做好你将会做的每一件事。