인프런 커뮤니티 질문&답변

정재욱님의 프로필 이미지
정재욱

작성한 질문수

스프링 핵심 원리 - 기본편

좋은 객체 지향 설계의 5가지 원칙의 적용

SOLID 질문

해결된 질문

작성

·

288

0

안녕하세요 강의잘보고있습니다!

DIP를 지키게되면 자동적으로 OCP , SRP를 지키게 되는건가요? 이 부분이 헷갈려서 질문 드립니다.

답변 1

4

안녕하세요. 님, 공식 서포터즈 David입니다.
.

DIP를 지키는 것이 자동적으로 OCP와 SRP를 충족하는 것은 아닙니다.

DIP는 의존관계를 어떻게 가져갈 것인가(추상화에 의존, 구체화에 의존)에 대한 문제인데

의존관계를 인터페이스로 잘 뽑아낸다고 하여도 해당 인터페이스 내부(추상화)가 잘 구성되어있지 않다면 OCP를 지킬 수 없기 때문입니다.

즉, 인터페이스를 어떻게 구현하느냐는 OCP의 문제이고 인터페이스를 사용하여 의존관계를 유연하게 가져가는 것은 DIP의 문제인 것입니다.

SRP는 하나의 클래스가 하나의 책임을 갖는 것이므로 DIP(추상화에 의존, 구체화에 의존)랑은 다른 문제이며 따라서 DIP를 지킨다고 SRP가 충족되는 것은 아닙니다.
.
감사합니다.

정재욱님의 프로필 이미지
정재욱

작성한 질문수

질문하기