
소프트웨어 디자인 패턴 중 하나로, 클래스의 인스턴스를 단 한개만 생성하도록 보장하는 패턴.
애플리케이션에서 전역적으로 접근해야 하는 리소스, 설정 정보, 캐시 등을 담당하는 객체를 구현할 때 유용하게 사용.
class Singleton {
private static instance: Singleton;
private constructor() {
// 외부에서 인스턴스 생성 방지
}
public static getInstance(): Singleton {
if (!Singleton.instance) {
Singleton.instance = new Singleton();
}
return Singleton.instance;
}
public doSomething(): void {
// 싱글톤 인스턴스에서 수행할 작업
}
}
// 아래와 같이 싱글톤 인스턴스에 접근할 수 있습니다.
const instance1 = Singleton.getInstance();
instance1.doSomething();
const instance2 = Singleton.getInstance();
instance2.doSomething();
console.log(instance1 === instance2); // true