ホームページ > Java > &#&チュートリアル > Java Enum はシングルトン設計パターンをどのように実装するのでしょうか?

Java Enum はシングルトン設計パターンをどのように実装するのでしょうか?

Linda Hamilton
リリース: 2024-12-01 20:01:20
オリジナル
641 人が閲覧しました

How Does a Java Enum Implement the Singleton Design Pattern?

Enum を使用したシングルトンの実装 (Java で)

ソフトウェア開発の領域では、必要なシナリオに遭遇することは珍しくありません。クラスのメモリ内にインスタンスが 1 つだけ存在するようにします。設計パターンであるシングルトンは、この要件に応えます。

列挙型を使用した次のシングルトンの Java 実装を考えてみましょう。

public enum MySingleton {
    INSTANCE;
}
ログイン後にコピー

表面的には、これが実際にどのように機能するのか疑問に思うかもしれません。結局のところ、オブジェクトが存在するにはインスタンス化する必要があります。内訳は次のとおりです:

暗黙的コンストラクター:
実際には、enum 宣言は暗黙的に空のコンストラクターを呼び出します。ただし、これはコードだけからは必ずしも明らかではありません。

明示的なコンストラクター:
より明示的にするために、列挙型にプライベート コンストラクターを追加できます:

public enum MySingleton {
    INSTANCE;
    private MySingleton() {
        System.out.println("Here");
    }
}
ログイン後にコピー

Enum 定数と構築:
Enum フィールドは本質的にコンパイル時の定数ですが、列挙型のインスタンスでもあります。 enum 型が初めて参照されるときに、これらのインスタンスが構築されます。

メイン メソッドのデモ:
別のクラスにメイン メソッドを作成する場合:

public static void main(String[] args) {
    System.out.println(MySingleton.INSTANCE);
}
ログイン後にコピー

次の出力を確認できます:

Here
INSTANCE
ログイン後にコピー

この例では、インスタンス「INSTANCE」は、列挙型が main メソッドで初めて参照されるときに構築されます。

以上がJava Enum はシングルトン設計パターンをどのように実装するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート