싱글톤(singleton)은 정확히 하나의 인스턴스만 생성되는 클래스이다.
싱글톤을 구현하는 방법은 3가지 방법이 있는데 가장 좋은 방법만 아래 예제와 함께 설명을 하도록 하겠다.

// Enum singleton - the preferred approach - page 18
public enum Elvis {
    INSTANCE;

    public void leaveTheBuilding() {
        System.out.println("Whoa baby, I'm outta here!");
    }

    // This code would normally appear outside the class!
    public static void main(String[] args) {
        Elvis elvis = Elvis.INSTANCE;
        elvis.leaveTheBuilding();
    }
}


싱글톤을 구현하는 방법 중 enum형을 이용해서 하는 방법이 좋다. 하나의 요소를 갖는 enum타입을 만들면 된다.

이 방법은 public 필드 방법과 기능적으로 동일하지만 더 간단하며 복잡한 직렬화 리플렉션 상황에서도 직력화가 자동으로 지원되고 인스턴스가 여러개 생기지 않도록 확실하게 보장해준다.
Posted by 서오석
,