ホームページ >Java >&#&チュートリアル >Javaでシングルトン列挙型を作成するにはどうすればよいですか?

Javaでシングルトン列挙型を作成するにはどうすればよいですか?

WBOY
WBOY転載
2023-08-29 10:21:061132ブラウズ

Javaでシングルトン列挙型を作成するにはどうすればよいですか?

Singleton パターンは、クラスのインスタンス化を 1 つのオブジェクトに制限します。 INSTANCE は、 列挙型 インスタンスを表す public static Final フィールド です。 EnumSingleton.INSTANCE を使用してクラスのインスタンスを取得できますが、実装を変更する場合に備えて、ゲッターにカプセル化することをお勧めします。

Java で列挙型をシングルトンとして使用できる理由はいくつかあります。

  • インスタンスが 1 つ保証される (リフレクションを通じても複数の列挙型をインスタンス化することはできません)。
  • スレッドの安全性。
  • 連載。

構文

public enum Singleton {
   INSTANCE;
   private singleton() {
   }
}

public enum EnumSingleton {
   <strong>INSTANCE</strong>;
   private String name;
   private int age;
   private void build(SingletonBuilder builder) {
      this.name = builder.name;
      this.age = builder.age;
   }
   public static EnumSingleton getSingleton() { <strong>// static getter</strong>
      return <strong>INSTANCE</strong>;
   }
   public void print() {
      System.out.println("Name: "+name + ", age: "+age);
   }
   public static class SingletonBuilder {
      private final String name;
      private int age;
      private SingletonBuilder() {
         name = null;
      }
      public SingletonBuilder(String name) {
         this.name = name;
      }
      public SingletonBuilder age(int age) {
         this.age = age;
         return this;
      }
      public void build() {
         EnumSingleton.INSTANCE.build(this);
      }
   }
   public static void main(String[] args) {
      new SingletonBuilder("Adithya").age(25).build();
      EnumSingleton.getSingleton().print();
   }
}

出力

Name: Adithya, age: 25

以上がJavaでシングルトン列挙型を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。