A Blackhole

Singleton Pattern

2018-05-29

Singleton Pattern

Singleton pattern restricts object creation for a class to only one instance.

  • 지정한 클래스의 인스턴스가 절대 1개 밖에 존재하지 않는 것을 ‘보증’하고 싶을 때,
  • 인스턴스가 1개 밖에 존재하지 않는 다는 것을 표현하고 싶을 때

이를 가능하게 해주는 패턴.

UML

singleton-pattern

Code

1
2
3
4
5
6
7
8
9
10
11
12
public class Singleton {

private static Singleton singleton = new Singleton();
private Singleton() {
System.out.println("객체 생성.");
}

public static Singleton getInstance() {
return singleton;
}

}

Singleton 객체는 클래스 로드시(getInstance() 최초 호출 시) 1회 초기화 된다.
인스턴스가 한 번만 생성되며, 이후 getInstance() 호출 시 같은 객체 참조를 반환한다.

관련 패턴

아래 패턴들은 인스턴스가 하나인 경우가 많다.

  • Abstract Factory
  • Builder
  • Facade
  • Prototype