자바스크립트 클래스에서 싱글톤 패턴을 구현하는 방법은 무엇인가요?
- 클래스 내부에 정적 변수(instance)를 선언합니다.
- 생성자 메서드(constructor)를 프라이빗(private)으로 만듭니다.
- 정적 메서드(static method)를 사용하여 인스턴스에 접근할 수 있도록 합니다.
- 정적 메서드 내에서 인스턴스가 없는 경우에만 인스턴스를 생성하고, 이미 생성된 경우에는 기존 인스턴스를 반환하도록 합니다.
아래는 자바스크립트에서 싱글톤 패턴을 구현하는 예시 코드입니다.
class Singleton {
// 정적 변수
static instance = null;
// 프라이빗 생성자
constructor() {
// 생성자 코드
}
// 정적 메서드
static getInstance() {
if (!Singleton.instance) {
Singleton.instance = new Singleton();
}
return Singleton.instance;
}
}
// 인스턴스 생성
const instance1 = Singleton.getInstance();
const instance2 = Singleton.getInstance();
console.log(instance1 === instance2); // true
위의 예시 코드는 Singleton 클래스를 정의하고 getInstance()라는 정적 메서드를 사용하여 인스턴스에 접근하는 방법을 보여줍니다. 이를 통해 Singleton 클래스의 인스턴스는 한 번만 생성되며, 모든 코드에서 동일한 인스턴스에 접근할 수 있습니다.
추가로, 싱글톤 패턴은 전역 상태를 유지하므로 남용하면 코드의 복잡성을 증가시킬 수 있습니다. 신중하게 사용해야 하며, 싱글톤 인스턴스가 필요한지를 고려하여 사용하는 것이 좋습니다.
참조
- Singleton pattern - Wikipedia
- Design Patterns: Singleton Pattern in JavaScript #JavaScript #싱글톤패턴