싱글턴

    [Effective Java] private 생성자나 열거 타입으로 싱글턴임을 보증하라

    싱글턴 싱글턴이란 인스턴스를 오직 하나만 생성할 수 있는 클래스를 말한다. 싱글턴을 만드는 방식은 보통 둘 중 하나이다. 1. 생성자를 private으로 감추고 public static 멤버 변수를 만든다. public class Elvis { public static final Elvis INSTANCE = new Elvis(); private Elvis() {}; } [장점] 이 방법은 JavaDocs를 만들 때 싱글턴임이 API에 명백히 드러난다는 장점이 있다. 또 한 간결하다는 특징이 있다. [단점] 권한이 있는 클라이언트의 경우 리플렉션을 사용해서 private 생성자를 호출할 수 있다. => 이를 방지하기 위해 생성자를 수정하여 두 번째 객체가 생성되려 할 때 예외를 던질 수 있다. publi..