반응형
디자인 패턴에서 가장 먼저 배우게 되는 싱글톤 패턴입니다.
객체를 생성할 때, 매번 새로운 참조값을 가진 객체를 생성할 수 있는데요.
만약, 같은 객체를 사용해야 한다면 비효율적인 방법이 될 수 있습니다.
싱글톤 패턴을 이용하면, 몇 가지 장점이 있습니다.
싱글톤 패턴을 사용하는 이유
- 하나의 인스턴스를 사용하기 때문에 불필요한 메모리 낭비를 방지
- 하나의 인스턴스로 불필요한 코드를 덜 작성
- 데이터베이스 연결 모듈에 많이 사용한다고 합니다.
타입스크립트를 이용해서 싱글톤 패턴을 만들어보기
2가지 방법을 이용해서 싱글톤 패턴을 코드로 표현해봤습니다.
1. static 변수를 이용해서 구현
2. 일반적인 클래스로 구현
// static 변수를 이용해서 구현
class Singleton {
private static module1 = {
func1: () => {},
func2: () => {},
}
private static instance: Singleton.module1;
static getInstance() {
return Singleton.instance;
}
}
const s1 = Singleton.getInstance();
const s2 = Singleton.getInstance();
console.log(s1 === s2); // true
// 일반적인 클래스로 구현
class Singleton {
private instance;
constructor() {
if (!this.instance) {
this.instance = {
func1: () => {},
func2: () => {}
};
}
return this;
}
public getInstance() {
return this.instance;
}
}
const singleton = new Singleton();
const s1 = singleton.getInstance();
const s2 = singleton.getInstance();
console.log(s1 === s2); // true
반응형
'TypeScript' 카테고리의 다른 글
[Typescript] 자료구조 : 단방향 연결 리스트 (Singly-LinkedList) (0) | 2023.02.18 |
---|---|
[Typescript] 디자인 패턴 : 팩토리 패턴, 정리해보기 (0) | 2023.02.12 |
[Typescript] Mapped Type (매핑된 타입) (0) | 2023.01.07 |
[Typescript] 생성자의 타입을 표현하기 (feat. 생성자 시그니처) (0) | 2023.01.07 |
[Typescript] keyof 연산자 (feat. JS에서는 없어요) (0) | 2023.01.07 |