>Java >java지도 시간 >Java에서 싱글톤 열거형을 만드는 방법은 무엇입니까?

Java에서 싱글톤 열거형을 만드는 방법은 무엇입니까?

WBOY
WBOY앞으로
2023-08-29 10:21:061126검색

Java에서 싱글톤 열거형을 만드는 방법은 무엇입니까?

Singleton 패턴은 클래스의 인스턴스화를 하나의 개체로 제한합니다. INSTANCE열거 인스턴스를 나타내는 public static 최종 필드입니다. EnumSingleton.INSTANCE를 사용하여 클래스의 인스턴스를 얻을 수 있지만 구현을 변경하려는 경우 getter에 캡슐화하는 것이 더 좋습니다.

Java에서 열거형을 싱글톤으로 사용할 수 있는 몇 가지 이유가 있습니다.

  • 하나의 인스턴스가 보장됩니다(리플렉션을 통해서도 여러 열거형을 인스턴스화할 수 없습니다).
  • 스레드 안전.
  • 직렬화.

구문

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제