學習單例 singleton 模式的收穫

2021-06-07 19:49:25 字數 648 閱讀 4710

單例模式的特點:

實現單例模式總結有4種方法

1)傳說中的餓漢式

餓漢也就是很飢渴,很想快速占有一切,所以餓漢單例就是在類初始化的時候就將單例物件建立了。

2)雙重檢查加鎖

這種方式我以前自己在優化**的時候用過,但不知道這就是傳說中的雙重檢查加鎖,jdk1.5之後可以用,但效率也不是很高。主要是不對單例方法加鎖,而是在方法內部加鎖,並且鎖內部再加一層判斷。

if(instance == null) 

}  }

3)lazy initialization holder class模式

主要利用類級內部類來實現延遲載入,然後由jvm保證執行緒安全

public

class singleton  

/***    類級的內部類,也就是靜態的成員式內部類,該內部類的例項與外部類的例項

*    沒有繫結關係,而且只有被呼叫到時才會裝載,從而實現了延遲載入。

*/private

static

class singletonholder 

public

static singleton getinstance() 

4)利用列舉實現

詳細可以參考:

Singleton 單例 模式

singleton 模式的宗旨在於確保某個類只有乙個例項,別且為之提供乙個全域性訪問點。為了防止其他工作人員例項化我們的類,可以為該類建立唯一乙個構造器,並將構造器的可見 設定為私有。值得注意的是,如果我們建立了其他的非私有的構造器,或者根本沒有為該類提 供構造器,那麼其他人員還是能例項化我們的類。...

Singleton 單例 模式

今天看了,單例模式。感覺他的本質就是,控制類例項的個數。特例就是,控制static變數的唯一性,保證各個程式共享著同一例項。乙個例子 package singleton description 這是乙個單例模式的使用demo author kyle goal 實現乙個類僅有乙個例項 singleto...

單例(Singleton)模式

單例模式的特點 singleton模式包含的角色只有乙個,那就是singleton。singleton擁有乙個私有建構函式,確保使用者無法通過new取得singleton的例項。除此之外,該模式中包含乙個靜態私有成員變數instance與靜態公有方法instance。instance方法負責檢驗並例...