單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。
1.單例模式的特點:
1.單例類只能有乙個例項。
2.單例類必須自己建立自己的唯一的例項。
3.單例類必須給所有其他物件提供這一例項。
2.餓漢式單例類
public class eagersingleton ; /** * 靜態工廠方法 * @return */ public static eagersingleton getinstance()}
3.懶漢式單例類
public class lazysingleton ; /** * 靜態工廠方法,返還此類的唯一例項 * @return */ synchronized public static lazysingleton getinstance() return m_instance; }}
注意:
1.與餓漢式單例類不同的是:餓漢式單例類第一次被引用時將自己例項化。
2.在上面給出懶漢式單例類實現裡對靜態工廠方法使用了同步化,以處理多執行緒環境。
使用單例模式有乙個必要條件:在乙個系統要求乙個類只有乙個例項時才應當使用單例模式。
1.有狀態的單例類
乙個單例類可以是有狀態的,乙個有狀態的單例物件一般也是可變單例物件。
有狀態的可變單例物件常常當做狀態使用。比如乙個單例物件可以持有乙個int型別的屬性,用來給乙個系統提供乙個數值唯一的序列號碼,作為某個販賣系統的賬單號碼。
2.沒有狀態的單例類
單例類也可以是沒有狀態的,僅用作提供工具性函式的物件。
單例模式 基類單例。。用於其他單例的派生
首先是繼承方式,為了進行單例的派生,需要將基類的建構函式以及拷貝賦值函式設定為protected成員 template class singleton singleton const singleton singleton operator const singleton public static...
單例設計模式與工具類
設計模式 一套被反覆使用 多數人知曉的 經過分類的 設計經驗的總結。之前很多程式設計師經常無數次的嘗試,總結出來一套最佳實踐。單例設計 定義 乙個類只有乙個物件例項。單例設計的優點 1 控制資源的使用。2 控制例項的產生,達到節省資源的目的。3 作為通訊媒介,資源共享。單例設計的特點 1 單例類只能...
單例類問題
有人在 iteye 上提出了單例類的問題,下面是乙個精彩的回答。寫乙個單例應該需要考慮乙個重要問題,物件是怎麼建立的 1 通過建構函式建立 2 通過反射建立 3 通過反序列化建立 4 通過 clone 建立提供的解決方案如下 1 禁止外部呼叫建構函式 設定private 2 禁止反射設定建構函式建立...