ホームページ > Java > &#&チュートリアル > Java の Enum 型はどのようにしてシンプルで効果的なシングルトン実装を実現するのでしょうか?

Java の Enum 型はどのようにしてシンプルで効果的なシングルトン実装を実現するのでしょうか?

Susan Sarandon
リリース: 2024-12-06 02:10:15
オリジナル
922 人が閲覧しました

How Does Java's Enum Type Provide a Simple and Effective Singleton Implementation?

Java で Enum を使用したシングルトン設計パターンの実装: 基礎となるメカニズムを理解する

シングルトン設計パターンでは、クラス内にインスタンスが 1 つだけ存在することが保証されます。これにより、制御されたリソース アクセスと一貫したオブジェクトの動作が可能になります。 Java でシングルトン実装を実現する 1 つの方法は、Enum 型を利用することです。この手法は型破りに見えるかもしれませんが、シンプルで効果的なアプローチを提供します。

Enum はシングルトンを実装する方法?

Enum をシングルトンとして使用するには、Enum を定義します。単一のフィールドをインスタンスとして使用します。例:

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

インスタンス化の背後にあるメカニズム

new を使用した明示的なインスタンス化を必要とする通常のオブジェクトとは異なり、列挙型はクラスが初めて参照されるときに暗黙的にインスタンス化されます。 。上記の例では、MySingleton は、クラスが最初に JVM によってロードされるときに 1 回だけインスタンス化されます。

単一インスタンスの確保

列挙型フィールドを定数として宣言することで、シングルトンの追加インスタンスを作成することができなくなります。 JVM は、Enum クラスのインスタンスが 1 つだけ存在できることを保証します。

明示的コンストラクターを使用した例

インスタンス化プロセスを示すために、次の例を検討してください。

public enum MySingleton {
    INSTANCE;
    private MySingleton() {
        System.out.println("Constructor called during first reference");
    }
}

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

出力:

Constructor called during first reference
INSTANCE
ログイン後にコピー

このコードは次のことを示しています。 MySingleton コンストラクターは、メイン メソッドで Enum クラスが最初に参照されるときに 1 回だけ呼び出されます。

キー ポイント:

シングルトンに Enum を使用する主な利点実装の重要性はそのシンプルさと効率にあります。 JVM による Enum インスタンス化の処理を活用することで、追加のボイラープレート コードや複雑な同期メカニズムを必要とせずに、シングルトンの動作が実現されます。

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

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