設計模式之---單例模式

單例模式涉及到一個單一的類,該類負責創建自己的對象,同時確保只有單個對象被創建。這個類提供了一種訪問其唯一的對象的方式,可以直接訪問,不需要實例化該類的對象。單例模式的特徵如下:

1、單例類只能有一個實例。

2、單例類必須自己創建自己的唯一實例。

3、單例類必須給所有其他對象提供這一實例。

這三個特徵可以保證一個類僅有一個實例,並提供一個訪問它的全局訪問點。

爲了實現上述的三個特徵,單例模式類的定義方法:單例類的構造函數以及單例類對象必須私有化,只能從類中才能獲取單例類的唯一對象。

單例類的實現方式有6種:

懶漢式、線程不安全,懶漢式、線程安全,餓漢式,雙檢鎖,登記式/靜態內部類,枚舉等等

1、懶漢式、線程安全:必須加鎖才能實現單例模式,效率比較低,代碼實現如下:


2、餓漢式:線程安全的,沒有加鎖,執行效率會提高,代碼實現如下:


以上兩種實現方式的運行結果,支持多線程:




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