오늘은 정말 간단하게 싱글톤 패턴이 무엇인지 살펴보겠습니다.
싱글톤 패턴의 정의를 간단히 요약하자면 하나의 인스턴스를 만들어 이를 여러 클래스에서 공유하여 사용하는 디자인 패턴입니다.
TS를 예제로 코드 부터 보시죠
class Printer {
private static instance: Printer; // 공유할 인스턴스 static으로 선언하여 생성자 함수를 선언하지 않고 메모리를 할당 시켜줌
private constructor() {} // 외부에서 printer의 생성자 함수 접근을 막기 위한 private 선언
public static getPrinter() { // static으로 선언하여 생성자 함수를 사용하지 않고 메모리를 할당시켜주어 getPrinter함수에 접근 가능하도록 함
// Printer의 instance가 없다면 생성자 함수를 통해 인스턴스를 만들어 준다. 반대로 기존에 인스턴스가 만들어져 있다면 생성자 함수를 호출하지 않고 기존에 인스턴스를 사용한다.
if (!this.instance) {
this.instance = new Printer();
}
return this.instance;
}
}
console.log(Printer.getPrinter()); // 같은 인스턴스를 가져옴
console.log(Printer.getPrinter()); // 같은 인스턴스를 가져옴
가장 기본적인 싱글톤 패턴의 코드 예제입니다. 이렇게 하나의 인스턴스를 만들어 여러 곳에서 공유하며 사용하는 것이 싱글톤 패턴 디자인입니다.