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

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章