TypeScript

[Typescript] 디자인 패턴 : 싱글톤 패턴, 정리해보기

철스커 2023. 2. 11. 19:49
반응형

디자인 패턴에서 가장 먼저 배우게 되는 싱글톤 패턴입니다.

객체를 생성할 때, 매번 새로운 참조값을 가진 객체를 생성할 수 있는데요.

만약, 같은 객체를 사용해야 한다면 비효율적인 방법이 될 수 있습니다.

 

 

싱글톤 패턴을 이용하면, 몇 가지 장점이 있습니다.

 

 

싱글톤 패턴을 사용하는 이유

- 하나의 인스턴스를 사용하기 때문에 불필요한 메모리 낭비를 방지

- 하나의 인스턴스로 불필요한 코드를 덜 작성

- 데이터베이스 연결 모듈에 많이 사용한다고 합니다.

 

 

 

타입스크립트를 이용해서 싱글톤 패턴을 만들어보기

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

 

 

 

반응형