Android设计模式-推荐使用的两种单例模式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq998701/article/details/81482473

1、两次判空实现单例

优点:资源利用率高,效率高。缺点:第一次加载时反应稍慢,由于JAVA内存模型的原因偶尔会失败。

    public class Singleton {
        private static Singleton instance = null; //私有构造方法 

        private Singleton() {
        }

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

2、静态内部类实现单例

优点:可以确保线程安全,也能够保证单例对象的唯一性,同时延迟了单例的实例化。

    public class Singleton {
        //私有构造方法 
        private Singleton() {
        }

        public static Singleton getInstance() {
            return SingletonHolder.instance;
        }

        private static class SingletonHolder {
            private static final Singleton instance = new Singleton();
        }
    }

3.其实大部分人用的可能是下面这种,对于要求不高的,也可以接受。

    public class Singleton {
        //私有构造方法 
        private Singleton() {
        }

        public static Singleton getInstance() {
            return SingletonHolder.instance;
        }

        private static class SingletonHolder {
            private static final Singleton instance = new Singleton();
        }
    }

猜你喜欢

转载自blog.csdn.net/qq998701/article/details/81482473
今日推荐