單例模式有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...