반응형
싱글톤 패턴
[Spring Boot] : 싱글톤 패턴 /
- 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴이다.
public class SingletonService {
//private로 외부에서 접근을 못 하게 하고 인스턴스를 스태틱 영역에 생성해서 올려둔다.
private static final SingletonService instance = new SingletonService();
//public로 getInstance()를 통해서만 호출할 수 있도록 return을 instance로 준다.
public static SingletonService getInstance() {
return instance;
}
// 생서자를 private로 선언해서 외부에서 new를 통해 객체를 생성하는 것을 막는다.
private SingletonService() {
}
public void logic() {
System.out.println("싱글톤 객체 로직 호출");
}
}
- 요점은 new를 통해 객체를 생성하지 못 하도록 해야 한다.
- 확인을 해보면 같은 객체 인스턴스가 반환이 되었다.
- 단점
- 코드가 많이 들어간다.
- 클라이언트가 구체 클래스에 의존해서 DIP, OCP를 위반할 수가 있다.
- 유연하지 못 하고 테스트가 어렵다.
- 자식 클래스를 만들기 어렵다. → private 생성자를 사용하기 때문이다.
- 안티패턴으로 불리기도 한다.
출처 : 스프링 핵심 원리 - 기본편 - 인프런
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard
(강의 내용을 참고로 개인 공부하여 올린 내용입니다.)
반응형
'Framework & Library > Spring Boot' 카테고리의 다른 글
[Spring Boot] : @Configuration과 싱글톤의 관계 (0) | 2022.01.08 |
---|---|
[Spring Boot] : 싱글톤 사용시 주의해야 하는 것 (0) | 2022.01.08 |
[Spring Boot] : 웹 애플리케이션 문제 (0) | 2022.01.06 |
[Spring Boot] : Bean Definition (0) | 2022.01.06 |
[Spring Boot] : Spring Bean 조회 기본 (0) | 2022.01.05 |
댓글