单例模式:一个类只能有一个实例对象。这样就决定了它有以下几个特点。

  1. 不能被继承,那得用​​sealed​​修饰类;
  2. 将构造函数隐藏起来,​​private​​构造函数;
  3. 公有静态方法创建单一实例;
  4. 为了保证多线程情况下的单一实例原则,还得加个线程锁;

简单代码实现如下:

public sealed class Singletion  
{
private static Singletion _singletion = null;

// 线程锁辅助对象
private static readonly object _lockObj = new object();

private Singletion()
{
}

public static Singletion Instance()
{
// 保证线程安全,多线程情况下只有一个对象实例
if (_singletion == null)
{
lock(_lockObj)
{
if (_singletion == null) {
_singletion = new Singletion();
}
}
}

return _singletion;
}
}


参考:
​设计模式笔记:单件模式(Singleton)