單例模式的三種寫法

2021-10-25 00:14:00 字數 1092 閱讀 3138

創造型模式

*單例模式

餓漢式 **推薦

優點:在類載入的時候就已經建立好了例項,沒有執行緒同步的問題;

缺點:如果這個例項從始至終都沒有用到,那麼就會造成記憶體浪費;

// 方法一   使用靜態物件

public

class

singleton

// 提供乙個靜態方法返回例項物件

public

static singleton getsingleton()

}// 方法二 使用靜態**塊

public

class

singleton

// 提供乙個靜態方法返回例項物件

public

static singleton getsingleton()

}

懶漢式
雙重檢查式

public

class

doublechecklazy

;/**

* 對外提供靜態的方法

*/public

static doublechecklazy getdoublechecklazyinstance()

else}}

else}}

// 總結 可用、但加鎖、依然會出現阻塞的情況,解決了執行緒安全的問題。

靜態內部類的方法 (利用jvm載入類的機制)
public

class

singletoninnerclass

private

singletoninnerclass()

;public

static singletoninnerclass getinstance()

}

載入 singletoninnerclass 類的時候不會去載入內部靜態類,只有去呼叫 getinstance()的時候,才會去載入 singletoninnerclass的靜態內部類,這就達到了 lazy載入 的效。

單例模式的三種寫法

這裡介紹三種單例模式寫法。第一種 餓漢模式 類載入時就初始化 public class singletonhungry public static singletonhungry getinstance 第二種 懶漢模式 類載入時不初始化,當呼叫getinstance方法時初始化 public cl...

iOS 三種單例模式寫法

單例模式是一種常用的軟體設計模式。在它的核心結構中只包含乙個被稱為單例類的特殊類。通過單例模式可以保證系統中乙個類只有乙個例項而且該例項易於外界訪問,從而方便對例項個數的控制並節約系統資源。如果希望在系統中某個類的物件只能存在乙個,單例模式是最好的解決方案。一 執行緒不安全 import singl...

C 單例模式的三種寫法

第一種最簡單,但沒有考慮執行緒安全,在多執行緒時可能會出問題,不過俺從沒看過出錯的現象,表鄙視我 public class singleton public static singleton createinstance return instance 第二種考慮了執行緒安全,不過有點煩,但絕對是正...