单例模式

2018-05-23  本文已影响9人  禅与发现的乐趣

饿汉式

直接进行创建

懒汉式

第一次使用时进行创建,使用synchronized修饰,避免对象不唯一

双重检查加锁

public class SingleInstance {
    private static volatile SingleInstance sInstance;

    private SingleInstance() {
    }

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

利用static机制,极客型的单例

public class SingleInstance {
        private SingleInstance() {
        }
        public static SingleInstance getInstance() {
            return SingleInstanceHolder.sInstance;
        }
        private static class SingleInstanceHolder {
            private static SingleInstance sInstance = new SingleInstance();
        }
    }

真的只有一个单例吗?

上一篇 下一篇

猜你喜欢

热点阅读