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

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

DDD
リリース: 2024-12-02 00:02:11
オリジナル
745 人が閲覧しました

How Does a Java Enum Implement the Singleton Pattern?

列挙型を使用したシングルトンの実装: メカニズムの解明

Java で列挙型を使用してシングルトン設計パターンを実装するという概念は、インスタンス化に関する疑問を引き起こします。内部の仕組みを詳しく調べるために、提供されているコード スニペットを調べてみましょう。

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

最初に、上記の enum 宣言が暗黙的な空のコンストラクターを作成することに注意することが不可欠です。ただし、わかりやすくするために、明示的に説明します:

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

次に、動作を観察する main() メソッドを含むテスト クラスを作成しましょう:

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

これを実行するとコードを実行すると、次の出力が表示されます:

Here
INSTANCE
ログイン後にコピー

ここで、MySingleton はどうなっているのかという疑問が生じます。インスタンス化された?答えは列挙型フィールドの性質にあります。これらはコンパイル時の定数として機能しますが、同時に対応する列挙型のインスタンスでもあります。これらの構築は、列挙型が初めて参照されるときに行われます。この場合、これは main() メソッド内で行われます。

したがって、列挙フィールドは本質的にその列挙型のインスタンスであることを理解することが重要です。 new.

を使用した明示的なインスタンス化を必要とせずにシングルトン パターンを強制する便利なメカニズムを提供します。

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

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