javascript class 싱글톤

jeongwon yun·2023년 3월 3일
0

Typescript

목록 보기
3/25
class Department {
  static fiscalYear = 2020;
  protected employees: string[] = [];

  constructor(protected readonly id: string, public name: string) {}
}

class AccountingDepartment extends Department {
  private lastReport: string;
  private static instance: AccountingDepartment;

  private constructor(id: string, private reports: string[]) {
    super(id, 'Accounting');
    this.lastReport = reports[0];
  }

  static getInstance() {
    if (AccountingDepartment.instance) {
      return this.instance;
    }
    this.instance = new AccountingDepartment('d2', []);
    return this.instance;
  }
}

const accounting = AccountingDepartment.getInstance();
const accounting2 = AccountingDepartment.getInstance();

console.log(accounting, accounting2);

하나의 클래스가 하나의 인스턴스를 만드는 전략 = 싱글톤

new 생성자로 직접 인스턴스를 만들지 않고
메서드를 통해서 인스턴스를 하나만 만든다.

위의 콘솔은 같은 인스턴스임을 확인할 수 있다.

0개의 댓글