Design Pattern
JavaScript - 싱글톤(Singleton)
알쓸
2019. 11. 25. 00:37
싱글톤(Singleton)
- 전체 시스템에서 하나의 인스턴스만 존재하도록 보장, 강제하는 객체 생성 패턴
장점
- 하나의 인스턴스만 존재하도록 보장하기 때문에 메모리 낭비 방지
- 전역에서 쉽게 접근해 사용 가능하기 때문에 편리함
단점
- 전역에서 쉽게 접근해 사용 가능하기 때문에 여러 곳에서 가져다 쓰면 의존성이 강해짐.
- OCP원칙(Open-Closed-Principle: 개방 폐쇄 원칙)을 위배할 수 있음
const Singleton = (function () {
let instance = null;
function init() {
return {
publicMethod () {
}
}
}
return {
getInstance () {
if (!instance) {
instance = init();
}
return instance;
}
}
})();
const instanceA = Singleton.getInstance();
const instanceB = Singleton.getInstance();
console.log(instanceA === instanceB); // true