C#设计模式----单列模式

单例模式是设计模式中最简单和最容易理解的模式,需要注意的地方只有一个,第一次实例化的时候要确保是线程安全即可。
第一种实现

/// /// 多线程不安全单利 /// public class Single { private static Single Instance; private Single() { } public static Single GetInstance() { if (Instance == null) Instance = new Single(); return Instance; } }

第二种实现
/// /// 多线程安全单利 每次要加锁浪费资源 /// public class Single { private static Single Instance; private static readonly object locker = new object(); private Single() { } public static Single GetInstance() { lock (locker) { if (Instance == null) Instance = new Single(); } return Instance; } }

第三中实现
/// /// 多线程安全单利 只需要第一次判断是否加锁 /// public class Single { private static Single Instance; private static readonly object locker = new object(); private Single() { } public static Single GetInstance() { if (Instance == null) { lock (locker) { if (Instance == null) Instance = new Single(); } } return Instance; } }

第四种实现
/// /// 多线程安全单利 C#运行时保证任何线程第一次访问Instance静态变量之前一定先创建实例 /// public class Single { private static Single Instance = new Single(); private Single() { } public static Single GetInstance() { return Instance; } }

【C#设计模式----单列模式】

    推荐阅读