設計模式之單例模式(Singleton Pattern),太簡單了

基本定義java

單例模式就是確保某一個類只有一個實例,而且提供一個全局訪問點。單例模式有以下幾個特色:安全

  • 它只有一個實例。
  • 它必需要自行實例化。
  • 它必須自行向整個系統提供訪問點。

代碼實現性能

餓漢式spa

直接初始化靜態變量。這樣就保證了線程安全。線程

public class Singleton {
private static Singleton singleton = new Singleton();
private Singleton(){
}
public static Singleton getInstance(){
return singleton;
}
}

懶漢式3d

按需加載. 配合synchronized來處理。也就是說將getInstance()方法變成同步方法code

public class LazySingleton {
private static volatile LazySingleton lazySingleton;
private LazySingleton(){
}
public static LazySingleton getInstance(){
if(lazySingleton == null){
synchronized(LazySingleton.class){
lazySingleton = new LazySingleton();
}
}
return lazySingleton;
}
}

優勢對象

節約了系統資源。因爲系統中只存在一個實例對象,對與一些須要頻繁建立和銷燬對象的系統而言,單例模式無疑節約了系統資源和提升了系統的性能。
由於單例類封裝了它的惟一實例,因此它能夠嚴格控制客戶怎樣以及什麼時候訪問它。
缺點blog

因爲單例模式中沒有抽象層,所以單例類的擴展有很大的困難。
JDK源碼資源

懶漢式

java.lang.Runtim

餓漢式

java.lang.System

​​​​​​​

相關文章
相關標籤/搜索