天天看點

Java——單例模式

單例模式,是一種常用的軟體設計模式,通過單例模式,可以保證系統中,應用該模式的這個類隻有一個執行個體,就是說,一個類隻有一個對象執行個體。

單例模式的實作步驟分為以下3步

将構造方法私有化,使其不能在類的外部通過 new 關鍵字執行個體化該類對象

在該類内部産生一個唯一的執行個體化對象,并且将其封裝為 private static 類型的成員變量

定義一個靜态方法傳回這個唯一對象

根據執行個體化對象的時機,單例設計模式又分為以下2種

餓漢單例設計模式

懶漢單例設計模式

餓漢單例設計模式就是随着類的加載的時候已經将對象建立完畢,不管以後會不會使用到該執行個體對象,先建立了再說。

比如這裡定義一個皇帝類

在測試類中進行測試

通過測試可以發現,執行個體化出來的k1、k2對象的位址值一緻。也就是同一個對象執行個體。

懶漢單例設計模式就是調用 getInstance() 方法時執行個體對象才被建立,先不急着執行個體化出對象,而是等要用的時候才執行個體化出對象。

2個對象執行個體列印出來的位址值也是一緻的。

懶漢單例設計模式在多線程環境下可能會執行個體化出多個對象,不能保證單例的狀态,是以需要加上關鍵字 synchronized,保證其同步安全。如下

  

上一篇: java單例模式
下一篇: Java單例模式