ホームページ >Java >&#&チュートリアル >Java Enum を使用してシングルトン設計パターンを実装するにはどうすればよいですか?
列挙型を使用したシングルトン実装
シングルトン設計パターンでは、クラスのインスタンスが 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 サイトの他の関連記事を参照してください。