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

WBOY
リリース: 2023-08-29 10:21:06
転載
1099 人が閲覧しました

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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!