Singleton패턴은 인스턴스를 단 하나만 만들기 위해 사용되는 패턴입니다. 코드상에서 사람들이 인스턴스가 하나만 존재한다는 것을 프로그램 상에서 표현하고 싶을 때 주로 사용됩니다.
참고로 위의 클래스 다이어그램에서 -는 private, +는 public이다.
public class Singleton {
private static Singleton singleton = new Singleton();
private Singleton() {
System.out.println("인스턴스를 생성했습니다.");
}
public static Singleton getInstance() {
return singleton;
}
}
여기서 눈여겨 볼 것은 위에서 생성자를 private로 선언하여 외부에서는 인스턴스를 생성하지 못하도록 한다는 점이다. 또 getInstance()는 static Factory Method의 일종이다.
위의 방법을 사용할 때 발생하는 많은 문제들을 해결하기 위해 enum으로 구현하는 방법도 있다.