Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android經典的單例模式,Android經典模式

Android經典的單例模式,Android經典模式

編輯:關於android開發

Android經典的單例模式,Android經典模式


當第一次加載Singleton類時不會初始化sInstance,只有在第一次調用Singleton的getInstance方法時才會導致sInstance被初始化。因此第一次調用getInstance方法會導致

虛擬機加載SingletonHolder類,這種方法不僅能夠確保線程安全,也能夠保證單例對象的唯一性,同時也延遲的單例的實例化,所以這是推薦使用的單例模式方式

public class Singleton {
     private Singleton(){};  
     public static Singleton getInstance(){
         return SingletonHolder.sInstance;
     }
     /**
      * 靜態內部類
      */
     private static class SingletonHolder{
         private static final Singleton sInstance = new Singleton();
     }

}

 

 

 

 

這個方法雖然好像也很不錯,但是好像會出現什麼雙重檢查鎖定(DCL)失效。

public class MyImageLoader extends ImageLoader {
    private static MyImageLoader instance;
    
    public static MyImageLoader getInstance() {
        if (instance == null) {
            synchronized (MyImageLoader.class) {
                if (instance == null) {
                    instance = new MyImageLoader();
                }
            }
        }
        return instance;
    }
    
    protected MyImageLoader() {
        
    }
}

 

 

 

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved