设计模式-单例模式

89 阅读1分钟

懒汉式

普通实现代码 非线程安全的

public class Singleton {

    public static Singleton singleton = null;

    private Singleton() {
    }

    public static Singleton getSingleton() {
        if (singleton == null) {
            singleton = new Singleton();
        }
        return singleton;
    }
}

双重检查 加锁  线程安全的 懒汉式式实现

public class Singleton {

    public static Singleton singleton ;

    private Singleton() {
    }

    public static Singleton getSingleton() {
        if (singleton == null) {
            synchronized (Singleton.class) {
                if (singleton == null) {
                    singleton = new Singleton();
                }
            }
        }

        return singleton;
    }
}

饿汉式

 实现代码  先创建对象 线程安全的 被 static final修饰的

public class Singleton {

    public static final Singleton singleton = new Singleton();

    private Singleton(){};

    public static Singleton getSingleton(){
        return singleton;
    }
}