單例模式的餓漢和懶漢

2021-08-02 22:50:54 字數 1414 閱讀 6386

單例模式就是要確保類在記憶體中只有乙個物件,該例項必須自動建立類,並且對外提供。

優點:在系統記憶體中只存在乙個物件,一次可以節約系統資源,對於一些需要頻繁建立和銷毀的物件單例模式無疑可以提高系統的效能。

缺點:1.沒有抽象層,因此擴充套件很難。2.指責過重,在一定程式上違背了單一職責。

餓漢式和懶漢式的區別:

餓漢式:類一載入就建立物件。

懶漢式:用的時候,採取建立物件。

餓漢:

public

class student

// 自己造乙個

// 靜態方法只能訪問靜態成員變數,加靜態

// 為了不讓外界直接訪問修改這個值,加private

private

static student s = new student();

// 提供公共的訪問方式

// 為了保證外界能夠直接使用該方法,加靜態

public

static student getstudent()

}

/*

* 單例模式:保證類在記憶體中只有乙個物件。

* * 如何保證類在記憶體中只有乙個物件呢?

* a:把構造方法私有

* b:在成員位置自己建立乙個物件

* c:通過乙個公共的方法提供訪問

*/public

class studentdemo

}

懶漢

public

class teacherdemo

/*

* 單例模式:

* 餓漢式:類一載入就建立物件

* 懶漢式:用的時候,才去建立物件

* * 面試題:單例模式的思想是什麼?請寫乙個**體現。

* * 開發:餓漢式(是不會出問題的單例模式)

* 面試:懶漢式(可能會出問題的單例模式)

* a:懶載入(延遲載入)

* b:執行緒安全問題

* a:是否多執行緒環境 是

* b:是否有共享資料 是

* c:是否有多條語句操作共享資料 是

*/public

class teacher

private

static teacher t = null;

public synchronized static teacher getteacher()

return t;

}}

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

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

單例模式 餓漢和懶漢模式

一 單例模式定義 單例模式確保某個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。在計算機系統中,執行緒池 快取 日誌物件 對話方塊 印表機 顯示卡的驅動程式物件常被設計成單例。這些應用都或多或少具有資源管理器的功能。每台計算機可以有若干個印表機,但只能有乙個printer spooler,...

懶漢餓漢單例模式

懶漢式單例類,在第一次呼叫時的時候例項化自己 public class singleton private static singleton single null 靜態工廠方法 public static singleton getinstance return single 執行緒安全的懶漢式單...