java中的懶漢式與餓漢式

  一、懶漢式:

         也稱單例模式,是一種需要的時候才創建對象的設計模式,優點是延遲加載,缺點是應用同步。如果在創建實例不加上Synchronized的話則會導致對象的訪問不是線程安全的,換句話說就是在使用多線程訪問單例模式的時候,(引申)是需要加同步函數,同步鎖對象爲當前類的類名.class    參考如下代碼;

class Singin{
    private  static Singin  singin = null;
    public static synchronized  Singin  getInstance(){
        if(singin == null){
            singin = new Singin();
        }
        return singin;
    }
}

  二、餓漢式:

         線程安全模式,因爲其在創建的同時就創建好一個靜態的對象對象供系統使用,以後不再改變。餓漢有三個要素;

         1、私有的構造方法。   2、指向自己實例的私有靜態引用。 3、以自己實例爲返回值的靜態公有方法。

class  Singin{
    private static Singin  singin = new Singin();
    private Singin(){
    }
    public Singin getInstance(){
        return singin;
    }    
}

 

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