首頁 > Java > java教程 > Java枚舉如何實現單例設計模式?

Java枚舉如何實現單例設計模式?

Linda Hamilton
發布: 2024-12-01 20:01:20
原創
642 人瀏覽過

How Does a Java Enum Implement the Singleton Design Pattern?

使用枚舉實現單例(Java)

在軟體開發領域,遇到我們需要的場景並不罕見確保一個類在記憶體中只有一個實例。 Singleton 是一種設計模式,可以滿足這項要求。

考慮以下使用枚舉的 Singleton 的 Java 實作:

public enum MySingleton {
    INSTANCE;
}
登入後複製

從表面上看,人們可能想知道這實際上是如何運作的。畢竟,物件必須實例化才能存在。細分如下:

隱式建構子:
實際上,枚舉宣告隱式呼叫空建構子。然而,僅從程式碼來看這一點並不總是很清楚。

明確建構子:
為了讓事情更明確,我們可以為枚舉加上一個私有建構子:

public enum MySingleton {
    INSTANCE;
    private MySingleton() {
        System.out.println("Here");
    }
}
登入後複製

枚舉常數和構造:
枚舉字段本質上是編譯時的常數,但它們也是其枚舉類型的實例。第一次引用枚舉類型時,將建構這些實例。

主方法示範:
如果我們在單獨的類別中建立主方法:

public static void main(String[] args) {
    System.out.println(MySingleton.INSTANCE);
}
登入後複製

我們可以觀察以下輸出:

Here
INSTANCE
登入後複製

在此範例中,實例「INSTANCE」是在main 方法中第一次引用枚舉時構造的。

以上是Java枚舉如何實現單例設計模式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板