jinsusong / CS-Study

CS
3 stars 5 forks source link

싱글톤 패턴을 사용하는 것은 객체지향 프로그래밍(OOP)의 특성을 위배하는 것이 아닌가요? #116

Open dupyo opened 1 year ago

anuu0916 commented 1 year ago

싱글톤 인스턴스를 여러곳에서 많이 공유할 경우 다른 클래스의 인스턴스 간 의존성이 높아질 수 있다. (객체간의 독립성을 지향하는 객체지향 원칙에 어긋남)

출처 : https://cheershennah.tistory.com/223

anuu0916 commented 1 year ago

오직 한 개의 인스턴스 생성을 보증하여 효율을 찾을 수 있지만 그에 못지많게 수반되는 문제점도 많다. 싱글톤 패턴은 안티패턴으로 불릴 만큼 단독으로 사용한다면 객체 지향에 위반되는 사례가 많다. 스프링 컨테이너 같은 프레임워크의 도움을 받으면 싱글톤 패턴의 문제점들을 보완하면서 장점의 혜택을 누릴 수 있다. 실제로 스프링 빈은 컨테이너의 도움을 받아 싱글톤 스콥으로 관리되고 있다.

출처 : https://tecoble.techcourse.co.kr/post/2020-11-07-singleton/

-> 정리하자면, 객체지향은 패러다임이고 싱글톤은 디자인패턴이므로 객체지향 원칙을 위배하더라도 메모리적 효율을 얻고 싶다면 싱글톤 패턴을 사용한다.