設計模式學習筆記 單例模式(Singleton)

2022-03-11 05:11:42 字數 1001 閱讀 3935

1.特點:只需乙個例項時考慮。

2.概念:保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。

3.類圖:

4.程式實現:

1)懶漢式:對於懶漢模式,我們可以這樣理解:該單例類非常懶,只有在自身需要的時候才會行動,從來不知道及早做好準備。它在需要物件的時候,才判斷是否已有物件,如果沒有就立即建立乙個物件,然後返回,如果已有物件就不再建立,立即返回。

懶漢模式只在外部物件第一次請求例項的時候才去建立。懶漢模式,它的特點是執行時獲得物件的速度比較慢,但載入類的時候比較快。它在整個應用的生命週期只有一部分時間在占用資源。

public class singleton

public static singleton getinstance()

return m_instance;}}

2)餓漢式:對於餓漢模式,我們可以這樣理解:該單例類非常餓,迫切需要吃東西,所以它在類載入的時候就立即建立物件。餓漢模式,它的特點是載入類的時候比較慢,但執行時獲得物件的速度比較快。它從載入到應用結束會一直占用資源。

// 定義為sealed防止派生,因為派生可能增加例項

public sealed class singleton

public static singleton getinstance()

}

3)使用鎖機制

public class singleton

public static singleton getinstance()

}return m_instance;}}

4)雙重鎖

public class singleton

public static singleton getinstance()}}

return m_instance;}}

設計模式學習筆記 單例模式

定義 確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。單例模式的通用類圖如下 如下 public class singleton public static singleton getinstance public void dosomething 這裡需要注意幾個地方 1 要定義...

設計模式學習筆記(單例模式)

保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。單例模式是對全域性變數的一種改進。全域性變數空間利用率比較低,且在專案中是乙個不安全隱患,特別是在多執行緒程式中,會有很多的不可 性 同時,使用全域性變數,也不符合物件導向的封裝原則。1 基礎版本 include using namespace...

設計模式 單例模式(學習筆記)

經典單例模式原理 1 單例模式 確保乙個類最多只有乙個例項,並提供乙個全域性訪問點 2 單例模式的意義 有些物件我們只需要乙個 執行緒池,快取,硬體設別等。如果多個例項會造成衝突 結果的不一致性等問題。使用靜態不變數方式來實現,或者使用全域性變數。3 單例模式類圖 經典單例模式存在的問題 改進方案 ...