單例設計模式 餓漢與懶漢

2022-06-12 21:39:08 字數 1273 閱讀 9332

正常情況下乙個類可以建立多個物件

public static void main(string args)
單例模式,是一種常用的軟體設計模式。通過單例模式可以保證系統中,應用該模式的這個類只有乙個例項。即乙個類只有乙個物件例項。

將構造方法私有化,使其不能在類的外部通過new關鍵字例項化該類物件。

在該類內部產生乙個唯一的例項化物件,並且將其封裝為private static型別的成員變數。

定義乙個靜態方法返回這個唯一物件。

根據例項化物件的時機單例設計模式又分為以下兩種:

餓漢單例設計模式

懶漢單例設計模式

餓漢單例設計模式就是使用類的時候已經將物件建立完畢,不管以後會不會使用到該例項化物件,先建立了再說。很著急的樣子,故被稱為「餓漢模式」。

package com.liqiliang.demo13_餓漢單例模式;

public class demo

}class car

//定義乙個本型別的靜態變數並賦值物件

private static car car = new car();

//定義靜態方法,專門獲取這個物件

public static car getinstance()

}

懶漢單例設計模式就是呼叫getinstance()方法時例項才被建立,先不急著例項化出物件,等要用的時候才例化出物件。不著急,故稱為「懶漢模式/延遲載入模式」。

package com.liqiliang.demo14_懶漢單例模式;

public class demo

}class honda

//先建立物件,不急著賦值

private static honda honda;

//獲取物件的方法

public static honda getinstance()

//如果不為空就直接返回

return honda;

}}

注意:懶漢單例設計模式在多執行緒環境下可能會例項化出多個物件,不能保證單例的狀態。

我們在學習完多執行緒的時候還會再講解如何解決這個問題。

單例模式可以保證系統中乙個類只有乙個物件例項。

實現單例模式的步驟:

將構造方法私有化,使其不能在類的外部通過new關鍵字例項化該類物件。

在該類內部產生乙個唯一的例項化物件,並且將其封裝為private static型別的成員變數。

定義乙個靜態方法返回這個唯一物件。

單例設計模式(餓漢模式與懶漢模式)

1 什麼時候用到 多程式讀取乙個配置檔案時,建議配置檔案封裝成物件。會方便操作其中資料,又要保證多個程式讀到的是同乙個配置檔案物件,就需要該配置檔案物件在記憶體中是唯一的。2.本質 保證乙個類在記憶體中的物件唯一性。3 思想 a 不讓其他程式建立該類物件。b 在本類中建立乙個本類物件。c 對外提供方...

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

1.什麼是單例 單例的意思是乙個類永遠只存在乙個物件,不能建立多個物件。2.為什麼要用單例 開發中有很多的物件我們只需要乙個,例如虛擬機器物件,任務管理器物件 物件越多越佔記憶體,有時候只需要乙個物件就可以實現業務,單例可以節省記憶體空間。3.如何實現單例 單例的實現方式有 餓漢單例設計模式 通過類...

懶漢餓漢單例模式

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