設計模式之單例模式 懶漢式和餓漢式

2021-08-27 20:26:53 字數 611 閱讀 5506

特點:

建構函式私有化即不能再通過new進行例項化;

唯一例項;

優點:在記憶體裡只有乙個例項,減少記憶體開銷,尤其是頻繁的建立和銷毀例項;

避免對資源的多重占用(檔案讀寫操作);

缺點:沒有介面,不能繼承,與單一職責原則衝突,乙個類應該只關心內部邏輯,而不關心外部怎樣例項化;

public

class lazysingleton

public

static synchronized lazysingleton getinstance()

return instance;

}}

懶漢式執行緒不安全解決方法:在getinstance()方法加入同步鎖synchronized;

public

class starvesingleton

public

static starvesingleton getinstance()

}

餓漢式執行緒安全;

懶漢與餓漢的區別:

顧名思義,懶漢式比較懶,沒有在最開始對instance屬性進行初始化;餓漢是一開始就進行初始化。

設計模式 單例模式之餓漢式和懶漢式

設計模式 通過大量的實踐和總結出來的優化的 結構,程式設計風格,以及解決問題的方式。單例設計模式 乙個類只能建立乙個例項。如何實現呢?以下4步。1 私有化構造器,為了是只能在類內部建立例項,而不能在類外建立例項。2 在類內部建立例項,私有化此例項。3 公有的方法呼叫此例項,通過類呼叫,因此設定為st...

設計模式 單例模式之餓漢式和懶漢式

單例模式可以分為懶漢式和餓漢式 餓漢式是執行緒安全的,無需關注多執行緒問題,它是在類載入時建立例項 懶漢式不是執行緒安全的,建立例項的時間與餓漢式相反是延時載入 餓漢式示例 public class test private static test test null public static s...

設計模式之單例模式(餓漢式,懶漢式)

public class singleton1 私有的構造方法 private singleton1 public class singleton2 return instance 私有構造方法 private singleton2 以上的懶漢式,為什麼要進行兩次判空呢?懶漢式單例模式涉及併發的問題...