Singleton 패턴
- 인스턴스가 하나만 존재하는 것을 보증하는 패턴
- `singleton`이란 요소가 하나뿐인 집합을 말한다.
Singleton 클래스
package singleton;
public class Singleton {
private static Singleton singleton = new Singleton();
private Singleton() {
System.out.println("인스턴스를 생성했습니다.");
}
public static Singleton getInstance() {
return singleton;
}
}
- 인스턴스를 하나만 만들 수 있다.
- Singleton은 static 필드로 정의되고 Singleton 클래스의 인스턴스에서 초기화한다.
- 초기화는 Singleton 클래스를 로드할 때 한 번만 실행된다.
- 생성자가 private로 되어 있는데, 이는 외부에서 생성자 호출을 금지하기 위함이다.
- 유일한 인스턴스를 얻는 메서드가 필요하다.
Main 클래스
package singleton;
public class Main {
public static void main(String[] args) {
System.out.println("start");
Singleton obj1 = Singleton.getInstance();
Singleton obj2 = Singleton.getInstance();
if(obj1 == obj2) {
System.out.println("obj1과 obj2는 같은 인스턴스입니다.");
} else {
System.out.println("obj1과 obj2는 다른 인스턴스입니다.");
}
System.out.println("end");
}
}
Singleton 패턴 등장인물
Singleton
- 유일한 인스턴스를 얻기 위한 static 메서드를 가지고 있다.
- 항상 같은 인스턴스를 반환한다.
'Design' 카테고리의 다른 글
디자인패턴 :: Factory Method Pattern (0) | 2024.07.08 |
---|---|
디자인패턴 :: Template Method Pattern (0) | 2024.07.05 |
디자인패턴 :: Iterator Pattern (0) | 2024.07.05 |