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

Java Enum を使用してシングルトン設計パターンを実装するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-15 02:22:09686ブラウズ

How Can Java Enums Be Used to Implement the Singleton Design Pattern?

列挙型を使用したシングルトン実装

シングルトン設計パターンでは、クラスのインスタンスが 1 つだけであることが保証され、集中アクセスが提供されます。 Java でシングルトンを実装する興味深いアプローチは、列挙型を使用することです。

次の列挙型を考えてみましょう:

public enum MySingleton {
    INSTANCE;
}

インスタンス化は通常コンストラクターを使用して実行されることを考えると、これはどのように機能するのでしょうか?答えは、列挙型フィールドの暗黙的な空のコンストラクターにあります。

明示的な構築

インスタンス化プロセスをより明示的にするには、プライベート コンストラクターを定義できます。

public enum MySingleton {
    INSTANCE;
    private MySingleton() {
        System.out.println("Instance created");
    }
}

インスタンス化

後続時コードが列挙型 (MySingleton.INSTANCE など) を参照すると、コンストラクターは 1 回だけ実行され、シングルトン インスタンスが確立されます。

public static void main(String[] args) {
    System.out.println(MySingleton.INSTANCE);
}

出力:

Instance created
INSTANCE

キー ポイント

Enum フィールドは、本質的にはその列挙型のインスタンスです。これらは、列挙型が初めて参照されるときに構築されます。このアプローチは、Java でシングルトンを実装するエレガントでタイプセーフな手段を提供します。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。