싱글톤 패턴

생성일
Jan 5, 2022 02:30 PM
태그
디자인 패턴
클래스에서 하나의 인스턴스만을 생성하는 패턴
단일 인스턴스의 상태는 프로그램 전체에서 공유하기 때문에 전역 상태를 관리하는데 적합하다
 
하나의 인스턴스로 제한하면 메모리 비용을 절약할 수 있음.
하지만 싱글톤 패턴은 타 언어에서 안티패턴으로 간주된다.
아래는 다른 블로그에서 본 싱글턴 단점
  • private 생성자를 갖고 있어 상속이 불가능
  • 테스트하기 힘들다
  • 여러개의 jvm에 분산되어 설치되는 경우 인스턴스가 단 하나임을 보장하지 못함
  • 전역상태를 만들 수 있기 때문에 객체지향 프로그래밍에서 권장되지 않음
 
js에서는 직접 객체를 생성할 수 있기 때문에 클래스로 싱글톤을 직접 만들 필요가 없다.
 
싱글턴의 일반적인 사용 사례는 애플리케이션 전체에 대한 전역 상태를 갖는 것이다.
코드의 여러 부분에서 동일한 변경 가능한 객체에 의존하는 경우 예기치 않은 동작을 유발할 수 있음.
 
리액트의 경우 싱글턴 대신 리덕스나 컨텍스트같은 상태관리 도구를 사용한다.
싱글톤과 유사하나 변경가능한 상태가 아닌 읽기 전용 상태를 제공하는 것이 다르다.
+Object.freeze 사용하기

Loading Comments...