싱글톤 패턴(Singleton Pattern)
디자인패턴 공부하기
  • JavaScript

싱글톤 패턴(Singleton Pattern)

싱글톤 패턴이란, 전체 시스템에서 하나의 인스턴스만이 존재하도록 보장하는 객체 생성패턴입니다.
특정 클래스의 인스턴스는 오직 하나만 유지하고, 동일한 객체를 생성하고 처음 생성된 객체를 return받습니다.

ES6에서와 ES7(static 추가)에서 사용법이 조금 다른데 간단한 예제를 통해 살펴보자.

ES6

// ES6
let instance;
class User {
  constructor() {
    if (instance) {
      return instance;
    }
    
    instance = this;
  }
};

const cho = new User();
const lee = new User();

console.log(cho === lee); // true
console.log(cho === instance); // true

ES7

// ES7
class User {
  static instance;
  constructor() {
    if (instance) {
      return instance;
    }
    
    instance = this;
  }
};

const cho = new User();
const lee = new User();

console.log(cho === lee); // true
console.log(cho === instance); // true