Singleton Pattern
需求:
确保全局共用一个实例, 避免所有不同对象调用造成结果不可知
原方式:
public static object Resource { get; set; }
问题:
实例在一开始就被创建, 有时候是不需要的
所以:
单例模式:
public class Singleton { private object resource; public object Resource { if(resource == null) resource = new object(); return resource; } }
问题:
多线程操作可能会造成 一开始时多个对象被实例化, 造成单例失效
所以:
1. 使用立即实例化, (相当于静态全局变量)
2. 同步 (性能耗损)
3. 双重锁