inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

싱글톤패턴 DIP 위반

미해결

스프링 핵심 원리 - 기본편

[질문 내용] 싱글톤 패턴 문제점에서 getInstance() 사용시 DIP를 위반한다고 하신 점이 이해가 잘 안가서 직접 구현해보았습니다. 제가 이해한 내용이 맞나요...? [구현 내용] 싱글톤 객체의 의존성 주입에 관한 문제이므로, SingletonService에 주입한 SingletonRepository를 생성하였습니다. public class SingletonRepository { private static final SingletonRepository instance = new SingletonRepository(); public static SingletonRepository getInstance() { return instance; } private SingletonRepository(){} } SingletonService에 SingletonRepository 필드를 추가합니다. public class SingletonService { private SingletonRepository singletonRepository; ... } DIP를 지키기 위해선, DI를 해야합니다. 하지만 SingletonService에 의존관계를 주입할 수 있는 방법이 없습니다... 생성자 주입 방법: 추가 객체 생성을 막기 위해 생성자를 막아놓았으므로 불가. 필드 주입, setter 주입, 일반 메서드 주입: 스프링 기술, 순수 자바 코드로 주입 불가. 클라이언트코드인 SingletonService가 SingletonRepository를 사용하기 위해 다음과 같이 구현체에 의존해야 합니다. public class SingletonService { private SingletonRepository singletonRepository = SingletonRepository.getInstance(); ... } 따라서 순수 자바 코드로 싱글톤 패턴 구현 시 DIP를 위반합니다.

  • spring
  • 객체지향
  • DIP
  • di
  • 위반
  • 싱글톤
할 수 있다 댓글 1 좋아요 1 조회수 391

인기 태그

인프런 TOP Writers

주간 인기글