單例模式小結

2021-08-31 06:59:15 字數 924 閱讀 6433

單例模式有5種實現方式,實現單例模式要掌握的要點:

1) 構造方法私有,為private

2) 確保單例類只有乙個物件,尤其是多執行緒模式下

1.餓漢式

public class singleton 

public static singleton getinstance()

}

2.懶漢式,有兩種寫法

非執行緒安全的寫法:

public class singleton 

public static singleton getinstance()

return instance;

}}

執行緒安全的寫法:

public class singleton 

public static synchronized singleton getinstance()

return instance;

}}

3.雙重檢查加鎖,實際中用的比較少,略過

4.靜態內部類

public class singleton 

private singleton()

public static singleton getinstance()

}

5.列舉

public enum singleton
如何選用:

多執行緒環境下,不能選用非執行緒安全的懶漢式,其他為執行緒安全的寫法。

餓漢式與列舉為非懶載入,靜態內部類與懶漢式為懶載入方式。

-單例物件 占用資源少,不需要延時載入,列舉 好於 餓漢

-單例物件 占用資源多,需要延時載入,靜態內部類 好於 懶漢式

參考:

單例模式小結!

簡單說來,單例模式 也叫單件模式 的作用就是保證在整個應用程式的生命週期中,任何乙個時刻,單例類的例項都只存在乙個 當然也可以不存在 具體實現就是把單例類的構造方法訪問許可權設定成private,然後在單例類裡面定義getinstance 方法來訪問構造方法 getinstance 通過如下方式保證...

單例模式小結

條件一 單例是保重乙個類只有乙個例項,條件二 並且提供乙個訪問他的全域性訪問點。如果只是構造乙個例項,為了防止外部呼叫該建構函式,將建構函式訪問許可權標記物protected或者private。提供全域性訪問點,需要在類中定義乙個static函式,返回類內唯一建構函式的例項。如下 要考慮多執行緒 屬...

單例設計模式小結

單例設計模式 單例模式用途 保證類在記憶體中只有乙個物件。單例模式案例 1 餓漢式 開發用這種方式。class singleton 2,建立本類物件 private static singleton s new singleton 3,對外提供公共的訪問方法 public static single...