Java プログラミング言語では、列挙型をシングルトンとして使用すると、クラスが存在します。ただし、列挙型を使用してこのシングルトン パターンを実装するにはさまざまなアプローチを使用でき、機能と使用法が若干異なります。
<code class="java">public enum Elvis { INSTANCE; private int age; public int getAge() { return age; } }</code>
Inこのアプローチでは、INSTANCE フィールドが作成され、Elvis 列挙型のシングルトン インスタンスが効果的に定義されます。プライベート コンストラクターは、列挙定義外でのインスタンス化を制限します。インスタンスにアクセスするには、Elvis.INSTANCE.getAge() を使用します。
<code class="java">public enum Elvis { INSTANCE; private int age; public static int getAge() { return INSTANCE.age; } }</code>
ここで、INSTANCE フィールドは以前と同様にプライベートです。ただし、enum インスタンスでゲッターを公開する代わりに、パブリック静的メソッド getAge() が提供されます。 Elvis.getAge() を呼び出すと、enum インスタンスの age プロパティが取得されます。
方法 1:
方法 2:
列挙型をシングルトンとして使用する最良のアプローチは、特定のユースケースによって異なります。
一般に、機能がスタンドアロンの場合は、静的メソッドの使用を検討してください。 enum クラスの明示的なインスタンスは必要ありません。インスタンスのプロパティが不可欠であり、直接アクセスが必要な状況では、最初のアプローチの方が適切です。
以上がJava のシングルトンとしての列挙型: どの実装が最適ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。