Singleton 패턴은 클래스의 인스턴스화를 하나의 객체로 제한하는 디자인 패턴입니다. 이는 시스템 전체에서 작업을 조정하는 데 정확히 하나의 객체가 필요한 경우에 유용합니다.
Singleton 패턴은 클래스가 존재하지 않는 경우 클래스의 새 인스턴스를 생성하는 메서드로 클래스를 생성하여 구현할 수 있습니다.
인스턴스가 이미 존재하는 경우 해당 개체에 대한 참조를 반환합니다.
ES2015+를 사용하면 싱글톤 패턴을 구현하여 한 번 인스턴스화되는 JavaScript 클래스의 전역 인스턴스를 만들 수 있습니다.
싱클톤 인스턴스는 모듈 내보내기를 통해 노출될 수 있습니다. 이렇게 하면 더 명확하고 제어할 수 있으며 다른 전역 변수와 차별화됩니다.
클래스의 새 인스턴스를 만들 수는 없지만 클래스에 정의된 공용 get 및 set 메서드를 사용하여 인스턴스를 읽고 수정할 수 있습니다.
let instance;
class Counter {
constructor(){
if(instance){
throw new Error("하나의 인스턴스만 생성할 수 있습니다.);
}
this.counter = 0;
instance = this;
}
getCount(){
return this.counter;
}
increment(){
return this.counter++;
}
decrement(){
return this.counter--;
}
}
// 인스턴스 중복 에러 발생
const singletonCounterA = new Counter();