適用於:
優點:
缺點:
1.懶漢式
public
class singleton
public
static synchronized singleton getinstance()
return uniqueinstance;
}}
2.餓漢式
public
class singleton
public
static singleton getinstance()
}
懶漢式用時間換空間,沒有人使用就不會建立例項。
餓漢式用空間換時間,不管用不用都建立。
懶漢式高階——雙重檢查加鎖
懶漢式如果不加synchronized關鍵字的話是執行緒不安全的。
而餓漢式是執行緒安全。
如果在建立例項的方法上加synchronized關鍵字能使得執行緒安全,但是會影響效能,而通過雙重檢查加鎖可以減少效能的影響。
public
class singleton
public
static singleton getinstance() }}
return uniqueinstance;
}}
餓漢式高階——initialize-on-demand holder class idiom
public
class singleton
private
singleton()
public
static singleton getinstance()
}
單例模式最佳實現——列舉
public
enum singleton
用列舉實現單例模式簡潔、高效、安全
控制例項的數量
public
class singleton
}private
singleton()
public
static singleton getinstance()
}
設計模式學習 單例模式
單例模式是一種常用的軟體設計模式。通過單例模式可以保證系統中乙個類只有乙個例項而且該例項易於外界訪問,從而方便對例項個數的控制並節約系統資源。如果希望在系統中某個類的物件只能存在乙個,單例模式是最好的解決方案。1.單例模式特點 2.單例模式作用 3.單例模式種類 a.餓漢式 b.懶漢式 c.懶漢式 ...
學習設計模式( ) 單例模式
定義 確保乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。型別 建立類模式 單例模式應該是23種設計模式中最簡單的一種模式了。它有以下幾個要素 單例模式現在主流推薦第一種雙重檢查型。以前流行的有根據例項化物件時機的不同有分為兩種 一種是餓漢式單例,一種是懶漢式單例。餓漢式單例在單例類被載...
設計模式學習 單例模式
有次面試的時候直接 了,其中乙個問題是要我說單例模式的實現方式。當時直接答了懶漢和餓漢模式,然後又被問有沒有其他方式,效率會更高些的,簡直一臉的懵逼,回去後查了下,確實還有別的。什麼是單例?單例就是確保乙個類只有乙個例項,而且自行例項化,並向系統提供這個例項。單個例還可以擴充套件,就是多例模式。有些...