싱글턴은 안티 패턴인가요? 그렇다면 스프링의 의존성 삽입 (Dependency Injection in Spring) 또한 안티 패턴 (Spring이 디폴트 인 Singleton Bean을 홍보하기 때문에)?싱글 톤은 안티 패턴인가요?
2
A
답변
5
싱글 톤을 하드 코딩하고 싱글 톤 빈을 생성하기 위해 스프링을 사용하는 것의 중요한 차이점이 있습니다. 후자는 단순한 구성입니다.
같은 스프링은 테스트 가능성을 방지하지 못합니다. 빈이 싱글 톤으로 사용되는 단일 사용 사례입니다. 동일한 스프링을 테스트에서 수동으로 인스턴스화하거나 동일한 인터페이스의 조롱 된 구현으로 대체하여 쉽게 사용할 수 있습니다.
클래스를 싱글 톤으로 코딩하면 다시 쓰지 않고 쉽게 대체 할 수 없습니다. 테스트는 대체하려는 경우가 하나 일뿐입니다. 이 빈의 두 개의 다른 인스턴스가 필요하다는 것을 알게되면 하드 코딩 된 싱글 톤을 사용해야합니다.
3
싱글 톤 패턴은 안티 패턴이 아니므로 객체 수를 으로 제한하는 것이 좋습니다.
그러나 글로벌 인스턴스를 제공하기 위해 싱글 톤을 악용하는 것은 안티 패턴입니다.
귀하의 질문의 봄 부분은 요아킴 사우어 대답을 참조하십시오.
관련 문제
- 1. 싱글 안티 패턴
- 2. DataAnnotations에서 자동 생성 된 jQuery 코드가 안티 패턴인가요?
- 3. 이 싱글 톤은 스레드로부터 안전한 것입니까?
- 4. 싱글 톤은 ASP.NET MVC의 요청간에 자동으로 유지됩니까?
- 5. 싱글 톤은 상속 가능해야합니까? 그렇지 않습니다.
- 6. 스프링 싱글 톤은 하나의 applicationcontext 만 있습니까?
- 7. android에서 왜 싱글 톤은 재활용되지 않습니까?
- 8. 시뮬레이터의 싱글 톤 대 실제 장치의 싱글 톤은 무엇입니까?
- 9. Guice의 반 패턴인가요?
- 10. 유효한 jQuery 플러그인 패턴인가요?
- 11. RequireJS가있는 싱글 톤 백본 모델 : 안티 패턴?
- 12. 싱글 톤은 ARC 및 비 ARC가있는 프로젝트에서 작동합니까?
- 13. 싱글 톤은 레거시 코드 기반에서 단위 테스트를 수행합니다. 좋은 생각인가요?
- 14. 서브 클래 싱 가능한 싱글 톤은 어떻게 구현합니까?
- 15. 세피아 톤은 어떻게 생성됩니까?
- 16. 싱글 톤 사용
- 17. 싱글 톤을 무엇으로 바꾸시겠습니까?
- 18. Google App Engine (또는보다 일반적으로 분산 서버 환경)에서 싱글 톤은 어떻게 작동합니까?
- 19. WCF 싱글 톤은 Windows 서비스에서 호스팅됩니다. 먼저 클라이언트와 서비스를 "접촉"하지 않고 WCF를 자동 시작하는 방법
- 20. 싱글 톤 클래스는
- 21. 싱글 톤 패턴, 개인 메소드 및 싱글 톤 모듈
- 22. EJB 3.1 클러스터의 싱글 톤
- 23. 안티 치트 클라이언트
- 24. 안티 앨리어싱 GL_TRIANGLE_FAN
- 25. 안티 앨리어싱 알고리즘?
- 26. 안드로이드의 안티 디버그
- 27. 엔터프라이즈 아키텍처 안티 패턴
- 28. 안티 앨리어싱 알고리즘
- 29. QGraphicsPathItem 안티 앨리어싱 문제
- 30. QTP에서 안티 설명이 가능합니까?
이 질문은 programmers.stackexchange.com에 더 적합 할 수 있습니다. – Heinzi
사실, 프로그래머에 관한 [이미 이것에 관한 질문] (http://programmers.stackexchange.com/questions/40373/so-singletons-are-bad-then-what)이 있습니다 .stackexchange.com. – krock