public class Elvis {
public static final Elvis INSTANCE = new Elvis(); // static final!!
private ElvisO { ... } // private 생성자!!
public void leaveTheBuilding() { .. . }
}
java 1.5 이상을 사용하면 enum 을 통해서 싱글톤을 구현하면 좋다. 여러번 초기화 오브젝트가 생성되거나 serialization, reflection attack 등에 상관없이 구현가능하다.
public enum Elvis{
INSTNACE;
private String test = "abc"
public void leaveTheBuilding(){
this.test = "ccc"; // INSTANCE.test 도 가능.
}
}