單例模式(Singleton Pattern)

2021-10-08 23:28:59 字數 1316 閱讀 9238

一、單例模式介紹

①定義:

指乙個類只有乙個例項,且該類能自行建立這個例項的一種模式。

②特點:

單例類只有乙個例項物件;

該單例物件必須由單例類自行建立;

單例類對外提供乙個訪問該單例的全域性訪問點;

③優缺點:

優點:

缺點:

④使用場景

要求生產唯一序列號。

web 中的計數器,不用每次重新整理都在資料庫裡加一次,用單例先快取起來。

建立的乙個物件需要消耗的資源過多,比如i/o 與資料庫的連線等。

二、**實現

①懶漢式,執行緒不安全

public

class

singleton

public

static singleton getinstance (

)return instance;

}}

②懶漢式,執行緒安全

public

class

singleton

public

static

synchronized singleton getinstance (

)return instance;

}}

③餓漢式

//執行緒安全

public

class

singleton

public

static singleton getinstance (

)}

④雙檢鎖/雙重校驗

//執行緒安全

public

class

singleton

public

static singleton getsingleton ()}

}return singleton;

}}

⑤登記式/靜態內部類

//執行緒安全

public

class

singleton

private singleton (

)public

static

final singleton getinstance (

)}

⑥列舉

//執行緒安全

public

enum singleton

}

單例模式 單例模式

餓漢式 急切例項化 public class eagersingleton 2.宣告靜態成員變數並賦初始值 類初始化的時候靜態變數就被載入,因此叫做餓漢式 public static eagersingleton eagersingleton new eagersingleton 3.對外暴露公共的...

單例 單例模式

簡單的實現乙個單例 instancetype sharedinstance return instance 真正的單例模式 myclass sharedinstance return instance id allocwithzone nszone zone return nil id copywi...

單例模式 懶漢式單例模式

單例模式有餓漢時模式和懶漢式 單例模式也就是說同一類只返回乙個物件供外部類使用 懶漢式即延遲初始化單例。在多執行緒環境下,簡單的懶漢式會有執行緒安全。懶漢式單例模式解決線性安全問題如下 1 使用雙重檢查鎖機制解決執行緒安全問題。2 單例模式還有更好的解決方案,即使用靜態類方式。懶漢式單例模式典型 p...