單例模式
1.什麼是單例模式
通俗講:在建立物件時,有且只有乙個物件,給所有物件提供這一例項物件。
2.如何實現單例模式
首先將構造方法私有化,提供乙個對外的靜態方法,靜態方法則包含單例類的物件。單例模式分為懶漢和餓漢。
public
class
single
private
static single single=
newsingle()
;public
static single getinstance()
}//簡單手擼
以上表示餓漢模式-此模式的執行緒是安全的,但它一直消耗了記憶體,因為在載入這個單例類時就已經建立了單列類的物件,此模式也符合我們實現單例模式的要求。
public
class
single
private
static single single=null;
public
static single getinstance()
return single;
}}
以上表示懶漢模式:當你需要使用的時候才建立,執行緒不安全。
如何改進懶漢模式執行緒的不安全?
1.加同步鎖synchronized
直接在單例類提供的靜態方法上加synchronized
2.優雅的方式(雙重檢查加鎖)
public
class
single
private
static single single=null;
public
static single getinstance()
}return single;
}}
此方法不僅保證了物件的唯一性而且還提公升獲取物件的效率,即建立物件時上鎖,一旦物件建立完畢後,獲取物件就不會觸發上鎖的**。 單例模式實現
單例模式 singleton 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。1 適用於單執行緒 class singleton public static singleton getinstance return instance 註解 singleton的靜態屬性instance中,只有...
單例模式實現
推薦的單例實現方法 餓漢模式 1種 public class singleton public static singleton getinstance 雙重檢查 volatile關鍵字必須加 public class singleton public static singleton getins...
單例模式實現
什麼是設計模式 設計模式 design pattern 是一套被反覆使用 多數人知曉的 經過分類的 設計經驗的總結 使用設計模式的目的 為了 可重用性 讓 更容易被他人理解 保證 可靠性 什麼是單例模式 單例模式是設計模式的一種,也是最簡單的一種,在單例模式中乙個類只能建立乙個例項,這種設計模式可以...