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

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

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

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

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

    자바도 아직 공부할 게 많이 남았네요 ^^;;
    • 버리
      2009/09/01 12:17 [Edit/Del]
      Heart님 올만이에요~^^
      저도 이번에 effective java 2nd 책 보면서 싱글턴으로 하는거 알아서..^^
      메소드에 접근하고 싶다면,
      Elvis.INSTACE.leaveTheBuilding();
      이렇게 접근하면 된답니다.^^
  2. 2011/12/14 10:37 [Edit/Del] [Reply]
    오호~ enum 내부에 메소드나, 타입이 없는 필드도 들어가나 보군요~

댓글을 남겨주세요

Name *

Password *

Link (Your Homepage or Blog)

Comment

Secret