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

2021-06-29 16:07:39 字數 1046 閱讀 3148

設計模式:通過大量的實踐和總結出來的優化的**結構,程式設計風格,以及解決問題的方式。

單例設計模式:乙個類只能建立乙個例項。

如何實現呢?以下4步。

1:私有化構造器,為了是只能在類內部建立例項,而不能在類外建立例項。

2:在類內部建立例項,私有化此例項。

3:公有的方法呼叫此例項,通過類呼叫,因此設定為static ,同時此例項也設定為static

餓漢式:

public class singletontest 

}//單例模式之餓漢式

class singleton

// 2:在類內部建立乙個例項

private static singleton instance = new singleton();

// 3:私有化此例項,通過公共的方法呼叫。

// 4:此公共的方法,通過類呼叫,因此設定為static,同時此例項也設定為static

public static singleton getinstance()

}

輸出的結果為:true

說明s1和s2兩個引用指向記憶體中的同乙個位址。即建立的是同乙個物件。

懶漢式:

public class singletontest 

}//單例模式之懶漢式

class singleton

// 3:私有化此例項,通過公共的方法呼叫。

// 4:此公共的方法,通過類呼叫,因此設定為static,同時此例項也設定為static

public static singleton getinstance()

return instance;

}}

輸出的結果為:true

說明s1和s2兩個引用指向記憶體中的同乙個位址。即建立的是同乙個物件。

餓漢式和懶漢式的區別:建立例項時間不同

餓漢式:一開始定義例項屬性時就建立例項。

懶漢式:首先定義乙個空的例項屬性,然後再獲得例項方法中建立例項。

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

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

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

特點 建構函式私有化即不能再通過new進行例項化 唯一例項 優點 在記憶體裡只有乙個例項,減少記憶體開銷,尤其是頻繁的建立和銷毀例項 避免對資源的多重占用 檔案讀寫操作 缺點 沒有介面,不能繼承,與單一職責原則衝突,乙個類應該只關心內部邏輯,而不關心外部怎樣例項化 public class lazy...

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

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