95
Chapter 07_
자바스크립트 디자인 패턴
7.4.2
단점
노출 모듈 패턴의 단점은 비공개 함수를 참조하는 공개 함수를 수정할 수 없다는 것입니다.
이는 비공개 함수가 비공개 구현을 참조하기 때문에 발생하며, 수정을 해도 함수가 변경될
뿐 참조된 구현이 변경되는 것이 아니기 때문입니다.
비공개 변수를 참조하는 공개 객체 멤버 또한 수정이 불가능합니다.
따라서 노출 모듈 패턴으로 만들어진 모듈은 기존 모듈 패턴보다도 취약할 수 있으므로 사용
에 주의해야 합니다.
7.5
싱글톤 패턴
싱글톤
Singleton
패턴은 클래스의 인스턴스
instance
가 오직 하나만 존재하도록 제한하는 패턴입
니다. 이 패턴은 전역에서 접근 및 공유해야 하는 단 하나의 객체가 필요할 때 유용합니다.
싱글톤 패턴을 구현하려면 이미 존재하는 인스턴스가 없어야 합니다. 인스턴스가 이미 존재
할 경우에는 해당 인스턴스의 참조를 반환합니다.
싱글톤 패턴은 정적 클래스나 객체와는 다르게 초기화를 지연시킬 수 있습니다. 왜냐하면 초
기화 시점에 필요한 특정 정보가 유효하지 않을 수도 있기 때문입니다. 싱글톤 클래스의 인
스턴스가 이미 생성되었다는 사실을 모른다면 해당 인스턴스를 찾아 사용하기 어렵습니다.
이는 싱글톤이 객체나 ‘클래스’가 아닌 구조이기 때문입니다. 클로저 변수 자체가 클로저가
아니라 클로저를 제공하는 함수 스코프가 클로저를 뜻한다는 것과 비슷합니다.
ES2015
+에서는 자바스크립트 클래스의 전역 인스턴스를 단 한 번만 생성하는 싱글톤 패턴
을 구현할 수 있으며, ...