首页 > 设计模式 > 单例设计模式

单例设计模式

作者:bin

单例设计模式属于创建型模式

有如下特点:
只有一个实例。
自我实例化。
提供全局访问点。

俄汉模式:线程安全,调用效率高。但是不能延时加载

public class Singleton {
    //类初始化时,立即加载这个对象
    private static Singleton instance = new Singleton();
    private Singleton() {
    }
    //方法没有加同步块,所以它效率高
    public static Singleton getInstance() {
        return instance;
    }
}

懒汉模式:在对象需要使用时去实例化类,线程安全的,但是同步锁会影响效率

public class Singleton {
    private static volatile Singleton instance = null;
    private Singleton() {
    }
    //运行时加载对象
    public static Singleton getInstance() {
        if (instance == null) {
            synchronized(Singleton.class){
                 if(instance == null){
                     instance = new Singleton();
                 }
            }
        }
        return instance;
    }
}

您必须 [ 登录 ] 才能发表留言!