생성자 함수를 활용한 자바스크립트 싱글톤 패턴 구현 방법

자바스크립트에서 싱글톤 패턴을 구현하는 방법 중 하나는 생성자 함수를 활용하는 것입니다. 싱글톤 패턴은 애플리케이션 전체에서 단 하나의 인스턴스만을 생성하고 이 인스턴스에 접근할 수 있도록 하는 디자인 패턴입니다. 이것은 여러 개의 인스턴스가 생성되는 것을 방지하여 리소스 낭비를 줄이고, 객체 간의 데이터 공유를 쉽게 만들어줍니다.

싱글톤 패턴 구현 방법

아래는 생성자 함수를 활용하여 자바스크립트에서 싱글톤 패턴을 구현하는 예시 코드입니다.

function Singleton() {
   if (Singleton.instance) {
      return Singleton.instance;
   }
   
   // 싱글톤 인스턴스 생성 및 속성 초기화
   this.property1 = "value1";
   //...
   
   // 인스턴스를 Singleton.instance에 할당
   Singleton.instance = this;
}

// 싱글톤 인스턴스에 접근하는 메서드
Singleton.getInstance = function () {
   if (!Singleton.instance) {
      Singleton.instance = new Singleton();
   }
   
   return Singleton.instance;
}

// 싱글톤 인스턴스 사용
const instance1 = Singleton.getInstance();
const instance2 = Singleton.getInstance();

console.log(instance1 === instance2); // true
console.log(instance1.property1); // value1

위 코드에서 Singleton이라는 생성자 함수를 정의합니다. 이 생성자 함수 내에서 인스턴스를 생성하고 필요한 속성을 초기화합니다. Singleton 생성자 함수 내에 Singleton.instance라는 변수를 선언하여 실제 싱글톤 인스턴스를 저장합니다.

이후 Singleton.getInstance()라는 정적 메서드를 정의하여 인스턴스에 접근할 수 있는 방법을 제공합니다. 이 메서드는 이미 인스턴스가 존재하면 기존 인스턴스를 반환하고, 존재하지 않으면 새로운 인스턴스를 생성하여 반환합니다.

싱글톤 패턴을 사용하면 애플리케이션에서 단 하나의 인스턴스를 사용할 수 있으므로, 객체 간의 데이터 공유나 중복 인스턴스 생성을 방지할 수 있습니다.

결론

생성자 함수를 활용하여 자바스크립트에서 싱글톤 패턴을 구현할 수 있습니다. 이를 통해 애플리케이션 전체에서 단 하나의 인스턴스를 사용하여 리소스를 절약하고 객체 간의 데이터 공유를 용이하게 할 수 있습니다.

#javascript #싱글톤