java中的單例模式的餓漢式和懶漢式

2021-07-25 11:30:52 字數 928 閱讀 3572

先來說說什麼是單例模式

單例就是程式執行過程中,自始至終這個物件只有乙個。

標準來講,也就是單例模式的三要素:

單例就是(1)構造方法私有化,(2)將乙個靜態屬性指向例項,(3)然後通過乙個靜態方法返回指向例項的靜態屬性。

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

通俗來說,餓漢式就是乙個人飢腸轆轆的餓漢剛進飯店就波不急待的要了份飯吃。

package yang.instance;

public

class singleton

private

static singleton singleton=new singleton();

public

static singleton getinstance()

}

懶漢就是飯店老闆很懶惰,你不說點菜老闆是不會主動給你提供選單的,等你說點菜了老闆才會拿起選單給你,而且整個飯店就有乙份選單。

package yang.instance;

public

class singleton2

public

static singleton2 getinsctance()

return singleton2;

}}

那麼這兩種模式適用於哪種情況下

餓漢式是立刻載入,無論你是否會用到這個物件都會載入。

如果你在構造方法裡面效能消耗較大、耗時比較長的**,比如和資料庫的連線,那麼程式就會在啟動的時候比較慢。

懶漢式就是延遲的載入方法,只有在使用的時候才會載入,在使用懶漢式的時候,在載入的時候你會明顯感覺載入比較快,因為這時候並沒有做物件的例項化,但是當你在第一次呼叫的時候,會進行例項化操作,這時候你就會感覺比較慢。

Java中的設計模式 單例模式(餓漢式)

一套優秀 的設計經驗總結。它是特定場景下特定問題的處理方法。重用設計模式和 提高擴充套件性 大量使用面向介面程式設計,預留擴充套件位 專案擴充套件的原則 對修改關閉,對新增開啟,也叫開閉原則 提高靈活性,降低耦合度。提高開發效率,節省大量的時間。乙個類只能由乙個例項物件,乙個類只能有乙個物件,但是要...

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

單件模式屬於工廠模式的特例,只是它不需要輸入引數並且始終返回同一物件的引用。1 當類只能有乙個例項而且客戶可以從乙個眾所周知的訪問點訪問它時。2 當這個唯一例項應該是通過子類化可擴充套件的,並且客戶應該無需更改 就能使用乙個擴充套件的例項時。下面對單件模式的懶漢式與餓漢式進行簡單介紹 1 餓漢式 在...

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

單件模式用途 單件模式屬於工廠模式的特例,只是它不需要輸入引數並且始終返回同一物件的引用。如果我們能夠保證系統中自始至終只有唯一乙個資料庫連線物件,顯然我們會節省很多記憶體開銷和cpu利用率。這就是單件模式的用途。當然單件模式不僅僅只用於這樣的情況。在 設計模式 可復用物件導向軟體的基礎 一書中對單...