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

如果不是高并发,出于效率考虑推荐使用如下两种单例模式的写法。

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();
    }

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容