創造型模式
*單例模式
餓漢式 **推薦
優點:在類載入的時候就已經建立好了例項,沒有執行緒同步的問題;懶漢式缺點:如果這個例項從始至終都沒有用到,那麼就會造成記憶體浪費;
// 方法一 使用靜態物件
public
class
singleton
// 提供乙個靜態方法返回例項物件
public
static singleton getsingleton()
}// 方法二 使用靜態**塊
public
class
singleton
// 提供乙個靜態方法返回例項物件
public
static singleton getsingleton()
}
雙重檢查式靜態內部類的方法 (利用jvm載入類的機制)public
class
doublechecklazy
;/**
* 對外提供靜態的方法
*/public
static doublechecklazy getdoublechecklazyinstance()
else}}
else}}
// 總結 可用、但加鎖、依然會出現阻塞的情況,解決了執行緒安全的問題。
載入 singletoninnerclass 類的時候不會去載入內部靜態類,只有去呼叫 getinstance()的時候,才會去載入 singletoninnerclass的靜態內部類,這就達到了 lazy載入 的效。public
class
singletoninnerclass
private
singletoninnerclass()
;public
static singletoninnerclass getinstance()
}
單例模式的三種寫法
這裡介紹三種單例模式寫法。第一種 餓漢模式 類載入時就初始化 public class singletonhungry public static singletonhungry getinstance 第二種 懶漢模式 類載入時不初始化,當呼叫getinstance方法時初始化 public cl...
iOS 三種單例模式寫法
單例模式是一種常用的軟體設計模式。在它的核心結構中只包含乙個被稱為單例類的特殊類。通過單例模式可以保證系統中乙個類只有乙個例項而且該例項易於外界訪問,從而方便對例項個數的控制並節約系統資源。如果希望在系統中某個類的物件只能存在乙個,單例模式是最好的解決方案。一 執行緒不安全 import singl...
C 單例模式的三種寫法
第一種最簡單,但沒有考慮執行緒安全,在多執行緒時可能會出問題,不過俺從沒看過出錯的現象,表鄙視我 public class singleton public static singleton createinstance return instance 第二種考慮了執行緒安全,不過有點煩,但絕對是正...