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. 双重锁

posted @ 2015-11-22 11:35  `Laimic  阅读(99)  评论(0)    收藏  举报