싱글톤 패턴의 한계
- private 생성자를 갖고 있기 때문에 상속할 수 없다.
싱글톤 패턴은 생성자를 private로 제한한다.
오직 싱글톤 클래스 자신만이 자기 오브젝트를 만들도록 제한하는것인데 이렇게 되면 상속과 다형성을 적용할 수 없다
객체지향언어의 장점인 상속과 다형성을 이용하지 못하면 의미가 없다
- 싱글톤은 테스트하기가 힘들다
싱글톤은 만들어지는 방식이 제한적이다 초기화 과정에서 생성자 등을 통해 사용할 오브젝트를 다이나믹하게 주입하기도 힘들기 때문에 필요한 오브젝트는 직접 만들어 사용할 수 밖에 없다.
이렇게 되면 테스트용으로 사용할 수없다고 저자는 말한다.
(사실 이부분은 잘 모르겠다 테스트요응로 사용할 수 없다는 말이 무슨 말일까 뒤에서 나온다고 하니 좀더 살펴보는걸로)
- 서버환경에서는 싱글톤이 하나만 생성되는것을 보장하지 못한다.
서버에서 클래스 로더를 어떻게 구성하고 있느냐에 따라서 싱글톤 클래스임에도 하나 이상의 오브젝트가 만들어질 수 있다.
여러개의 JVM에 분산돼서 설치가 되는 경우에도 각각 독립적으로 오브젝트가 생기기 때문에 싱글톤으로 가치가 떨어진다.
(JVM에 분산되어 설치가 된다는 것이 개인의 컴퓨터에 서버를 또 설치된다는 것인지 JVM이 나눠서 설치되는 경우가 뭐지 )
- 싱글톤의 사용은 전역 상태를 만들수 있기 때문에 바람직하지 못하다
아무 객체나 자유롭게 접근하고 수정하고 공유할 수 있는 전역 상태를 갖는 것은 객체지향 프로그래밍에서는 권장되지 않는 프로그래밍 모델이다
'spring' 카테고리의 다른 글
토비의스프링공부하기 - 1장 (12.7) (0) | 2017.12.07 |
---|---|
토비의스프링공부하기 - 들어가며 (0) | 2017.12.01 |