單例模式 餓漢和懶漢模式

2021-09-11 09:08:11 字數 871 閱讀 9692

一、單例模式定義:

單例模式確保某個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。在計算機系統中,執行緒池、快取、日誌物件、對話方塊、印表機、顯示卡的驅動程式物件常被設計成單例。這些應用都或多或少具有資源管理器的功能。每台計算機可以有若干個印表機,但只能有乙個printer spooler,以避免兩個列印作業同時輸出到印表機中。每台計算機可以有若干通訊埠,系統應當集中管理這些通訊埠,以避免乙個通訊埠同時被兩個請求同時呼叫。總之,選擇單例模式就是為了避免不一致狀態,避免政出多頭。

二、單例模式特點:

1、單例類只能有乙個例項。

2、單例類必須自己建立自己的唯一例項。

3、單例類必須給所有其他物件提供這一例項。

三、經典型別

單例模式保證了全域性物件的唯一性,比如系統啟動讀取配置檔案就需要單例保證配置的一致性

// 餓漢式單例

public class singleton1

private static singleton1 single = new singleton1();

// 靜態工廠方法

public static singleton1 getinstance()

}//餓漢式單例在類載入初始化時就建立好乙個靜態的物件供外部使用,除非系統重啟,這個物件不會改變,所以本身就是執行緒安全的。

懶漢型

public class singleton3 

private static singleton3 single = null;

public static singleton3 getinstance()

}return single;

}}//

懶漢單例模式 和 餓漢單例模式

單例模式 是一種常用的軟體設計模式,在它的核心結構中值包含乙個被稱為單例的特殊類。乙個類只有乙個例項,即乙個類只有乙個物件例項。餓漢單例模式 public class singletondemo5 private singletondemo5 public static final singleto...

單例模式 懶漢模式和餓漢模式

單例模式就是在整個程式中只能有乙個類的例項存在,並提供乙個訪問該例項的全域性訪問點。單例模式的優點 1 由於單例模式只生成乙個例項,較少了系統開銷,當乙個物件的產生的產生需要比較多的資源時,如讀取配置 產生其他依賴物件是,則可以通過在應用啟動時直接產生乙個單例物件,然後永久駐留內容的方式來解決。2 ...

單例模式 餓漢模式和懶漢模式

一 所謂類的單例設計模式,就是採取一定的方法保證在整個的軟體系統中,對某個類只能存在乙個物件例項。具體 的實現 1 餓漢模式 提前建立物件 餓漢模式 class bank 內部建立類的物件 此物件也必須建立為靜態的 private static bank instance new bank 提供公共...