- Singleton 패턴 : 인스턴스를 단 하나만 만든다
Singleton 패턴은 인스턴스가 하나만 존재하는 것을 보증하는 패턴이다.
- 어떤 경우에 사용할까?
Singleton 패턴에서는 인스턴스 수를 제한하고 있다. 인스턴스가 여러 개면 인스턴스가 서로 영향을 미쳐 뜻밖의 버그를 만들어 낼 수 있으나, 인스턴스가 하나뿐이라는 보장이 있다면 인스턴스 간 영향이 최소화 될 수 있다.
- 예제 코드
이름 | 설명 |
Singleton | 인스턴스가 하나만 존재하는 클래스 |
Main | 동작 테스트용 클래스 |
- Singleton 클래스
public class Singleton {
private static Singleton singleton = new Singleton();
private Singleton() {
System.out.println("인스턴스를 생성했습니다.");
}
public static Singleton getInSingleton() {
return singleton;
}
}
- Main 클래스
public class Main {
public static void main(String[] args) {
System.out.println("Start.");
Singleton obj1 = Singleton.getInSingleton();
Singleton obj2 = Singleton.getInSingleton();
if(obj1 == obj2) {
System.out.println("obj1과 obj2는 같은 인스턴스입니다.");
} else {
System.out.println("obj1과 obj2는 같은 인스턴스가 아닙니다.");
}
System.out.println("End.");
}
}
참고문헌 : 유키 히로시 저/김성훈 역(2022), JAVA 언어로 배우는 디자인 패턴 입문, 영진닷컴
참고자료 : https://refactoring.guru/ko/design-patterns/singleton