자바 싱글톤은 자바 5 버전부터 도입된 이늄(enum) 타입을 써서 생성하는 게 최선입니다(코드 4-6). <이펙티브 자바>를 지은 조슈아 블로크도 이 방법을 강력히 권장합니다. 이늄은 태생부터 싱글톤이라 잡다한 생성 과정은 JVM이 알아서 처리하므로 객체 생성 및 동기화, 그리고 초기화 관련 문제를 고민하지 않아도 됩니다.
코드 4-6 이늄 타입으로 구현한 싱글톤 패턴
package com.devchronicles.singleton; public enum MySingletonEnum { INSTANCE; public void doSomethingInteresting(){} }
싱글톤 객체 인스턴스는 이렇게 참조합니다.
MySingletonEnum mse = MySingletonEnum.INSTANCE;
싱글톤 참조체를 손에 넣었으니 싱글톤 메서드는 마음껏 불러 쓰면 됩니다(예: mse.doSomethingInteresting();).