싱글턴(singleton)이란?

인스턴스를 오직 하나만 생성할 수 있는 클래스!

싱글턴을 만드는 방식

두 방식 모두, 생성자는 private 으로 감춰두고, 유일한 인스턴스에 접근할 수 있는 수단으로 public static 멤버를 하나 마련해둔다.

  1. public static 멤버가 final 필드인 방식의 싱글턴
public class Elvis {

    public static final Elvis INSTANCE = new Elvis();
    private Elvis() { ... }

    public void leaveTheBuilding() { ... }
}
  1. 정적 팩터리 메서드를 사용한 방식의 싱글턴
public class Elvis {

		private static final Elvis INSTANCE = new Elvis();
		private Elvis() { ... }
		public static Elvis getInstance() { return INSTANCE; }

		public void leaveTheBuilding() { ... }
}