定義:確保乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。
型別:建立類模式
單例模式應該是23種設計模式中最簡單的一種模式了。它有以下幾個要素:
單例模式現在主流推薦第一種雙重檢查型。以前流行的有根據例項化物件時機的不同有分為兩種:一種是餓漢式單例,一種是懶漢式單例。餓漢式單例在單例類被載入時候,就例項化乙個物件交給自己的引用;而懶漢式在呼叫取得例項方法的時候才會例項化物件。**如下:
1、雙重檢查[推薦用]
public
class singleton
public
static singleton getinstance() }}
return singleton;
}}
優點:執行緒安全;延遲載入;效率較高。2、餓漢式(靜態常量)[可用]
public
class singleton
public
static singleton getinstance()
}
優點:這種寫法比較簡單,就是在類裝載的時候就完成例項化。避免了執行緒同步問題。3、餓漢式(靜態**塊)[可用]缺點:在類裝載的時候就完成例項化,沒有達到lazy loading的效果。如果從始至終從未使用過這個例項,則會造成記憶體的浪費。
public
class singleton
private
singleton() {}
public singleton getinstance()
}
優缺點和餓漢式是一樣的。
public
class singleton
return singleton;
}}
單例模式比較簡單,在此就不舉例**演示了。 學習設計模式 單例模式
適用於 優點 缺點 1.懶漢式 public class singleton public static synchronized singleton getinstance return uniqueinstance 2.餓漢式 public class singleton public stat...
設計模式學習 單例模式
單例模式是一種常用的軟體設計模式。通過單例模式可以保證系統中乙個類只有乙個例項而且該例項易於外界訪問,從而方便對例項個數的控制並節約系統資源。如果希望在系統中某個類的物件只能存在乙個,單例模式是最好的解決方案。1.單例模式特點 2.單例模式作用 3.單例模式種類 a.餓漢式 b.懶漢式 c.懶漢式 ...
設計模式學習 單例模式
有次面試的時候直接 了,其中乙個問題是要我說單例模式的實現方式。當時直接答了懶漢和餓漢模式,然後又被問有沒有其他方式,效率會更高些的,簡直一臉的懵逼,回去後查了下,確實還有別的。什麼是單例?單例就是確保乙個類只有乙個例項,而且自行例項化,並向系統提供這個例項。單個例還可以擴充套件,就是多例模式。有些...