[Spring] Singleton 패턴과 문제점
2023. 9. 21. 17:29ㆍSpring
Singleton 패턴을 활용하면 클래스 당 하나의 객체만 공유하도록 만들어 메모리 부담을 줄일 수 있다.
package hello.core.singleton;
public class SingletonService {
private static final SingletonService instance = new SingletonService();
public static SingletonService getInstance() {
return instance;
}
private SingletonService(){
}
public void logic() {
System.out.println("싱글톤 객체 로직 호출");
}
}
하지만 다양한 문제도 가진다.
1. 싱글톤 패턴 구현에는 추가적인 코드가 들어간다.
2. 생성자를 이용할 수 없기 때문에 클라이언트 코드에서 직접 생성을 해주어야 하는데 이렇게 되면 DIP를 위반하게 되고 OCP를 위반하게 된다.
3. 생성자를 이용할 수 없어 new로 여러 객체를 만들지 못해 유연하지 못하기 때문에 테스트하기 어렵다.
4. private 생성자로 자식 클래스를 만들기에는 제약이 있다. 왜냐하면 부모의 생성자인 super()를 사용하지 못하기 때문이다.
이러한 싱글톤 패턴의 문제점은 해결하면서 장점을 살린게 스프링 컨테이너 또는 싱글톤 컨테이너이다.
Reference
'Spring' 카테고리의 다른 글
[Spring] 싱글톤 컨테이너의 문제점 (0) | 2023.09.29 |
---|---|
[Spring] 싱글톤 컨테이너에 대한 나름의 이해 (0) | 2023.09.22 |
[Spring] 스프링 없는 순수한 DI 컨테이너의 문제점 (0) | 2023.09.21 |
[Spring] BeanDefinition에 대한 나름의 이해 (0) | 2023.09.21 |
[Spring] xml 설정 정보에 대한 나름의 이해 (0) | 2023.09.20 |