Java设计模式-单例

2017-11-30  本文已影响0人  雪涛公子

1、基于volatile

public class SafeDoubleCheckedLocking {

    private volatile static SafeDoubleCheckedLocking instance;

    public static SafeDoubleCheckedLocking getInstance() {
        if (instance == null) {
            synchronized (SafeDoubleCheckedLocking.class) {
                if (instance == null) {
                    instance = new SafeDoubleCheckedLocking();
                }
            }
        }
        return instance;
    }
}

2、基于类初始化

public class InstanceFactory {

    private static class InstanceHolder {
        public static InstanceFactory instance = new InstanceFactory();
    }

    public static InstanceFactory getInstance() {
        return InstanceHolder.instance;
    }
}
上一篇下一篇

猜你喜欢

热点阅读