[TYPESCRIPT] 타입스크립트 디자인 패턴 - Singleton

Singleton Pattern

The singleton pattern is a creational software design pattern.

클래스가 단 하나의 인스턴스 만 갖도록 보장한다.

이점

  1. 하나의 인스턴스만 할당함으로 메모리낭비 방지.
  2. 하나의 프로세스에서 공유자원 접근시 이점
  3. db커넥션풀, 로그 등에 사용됨.

단점

  1. 멀티 프로세스 상황에서 인스턴스공유 이슈 생길수있음
  2. 하나의 인스턴스로 많은 작업을 하게될 경우 문제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class Singleton { 
private static instance: Singleton;
private _temperature: number;
private constructor() { }
static getInstance() {
if (!Singleton.instance) {
Singleton.instance = new Singleton();
Singleton.instance._temperature = 0;
}
return Singleton.instance;
}
get temperature(): number {
return this._temperature;
}
set temperature(score) {
this._temperature = score;
}
increaseTemperature(): number {
return this._temperature += 1;
}
decreaseTemperature(): number {
return this._temperature -= 1;
}
}
const myInstance = Singleton.getInstance();
const myInstance2 = Singleton.getInstance();
console.log(myInstance === myInstance2); // true