본문 바로가기
Framework & Library/Spring Boot

[Spring Boot] : 싱글톤 패턴

by 오주현 2022. 1. 6.
반응형
싱글톤 패턴

[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
(강의 내용을 참고로 개인 공부하여 올린 내용입니다.)

반응형

댓글