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