본문 바로가기

나만의 작업/Java

[Effective Java] 3. private 생성자나 enum 타입을 사용해서 싱글톤의 특성을 유지하자.

3. private 생성자나 enum 타입을 사용해서 싱글톤의 특성을 유지하자.
싱글톤(singleton)은 정확히 하나의 인스턴스만 생성되는 클래스. 싱글톤은 본질적으로 유일한 시스템 컴포넌트를 나타낸다.

예를 들면, 윈도우 매니저나 파일 시스템 등

자바 1.5 이후 싱글톤 구현하는 가장 좋은 방법

//열거형( Enum) 싱글톤
public enum Elvis {
      INSTANCE;
      public void leaveTheBuilding() { ... } 
}

복잡한 직렬화나 리플렉션 상황에서도 직렬화가 자동으로 지원되고, 인스턴스가 여러 개 생기지 않도록 확실하게 보장해준다.
  • 오... enum 으로 싱글턴을... 신기하네요~
    INSTANCE; 구문도 첨 본거고...

    자바도 아직 공부할 게 많이 남았네요 ^^;;

    • 버리 2009.09.01 12:17 신고 댓글주소 수정/삭제

      Heart님 올만이에요~^^
      저도 이번에 effective java 2nd 책 보면서 싱글턴으로 하는거 알아서..^^
      메소드에 접근하고 싶다면,
      Elvis.INSTACE.leaveTheBuilding();
      이렇게 접근하면 된답니다.^^

  • 오호~ enum 내부에 메소드나, 타입이 없는 필드도 들어가나 보군요~