• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

인스턴스와 의존관계 맺는다는것 질문

22.02.15 23:02 작성 조회수 157

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요.
 
1. 앞 강의에서 의존관계를 맺는다는 것은 "그 대상을 알고 있는 상태" 라고 설명해 주셨는데요,
 
그래서 이것을 코드레벨로 생각하면
구현체와 의존관계를 맺는다는 것은 해당 구현체를 참조하는 상태로 볼 수 있었습니다.
 
그렇다면 인터페이스와의 의존관계는 해당 인터페이스 형 참조변수를 선언하고 있다면 (강의 내용처럼) 의존관계가 맺어진것 으로 보는것이 맞는지 궁금합니다.
 
2. 또한 앞 클라이언트와 서버 간주 질문의 답변 처럼, 클라이언트와 서버는 고정된 역할이 아니라 요청과 응답의 관점에 따라 달라지는 것으로 이해하였는데요,
 
그렇다면 이런 상황에서 OCP와 DIP를 지킨다는 것은 모든 관점에서 가능한 클라이언트들의 코드를 전부 변경하면 안되는것이 맞는지 궁금합니다.
 

답변 1

답변을 작성해보세요.

1

David님의 프로필

David

2022.02.16

1. 앞 강의에서 의존관계를 맺는다는 것은 "그 대상을 알고 있는 상태" 라고 설명해 주셨는데요, 

  그래서 이것을 코드레벨로 생각하면 구현체와 의존관계를 맺는다는 것은 해당 구현체를 참조하는 상태로 볼 수 있었습니다. 그렇다면 인터페이스와의 의존관계는 해당 인터페이스 형 참조변수를 선언하고 있다면 (강의 내용처럼) 의존관계가 맺어진것 으로 보는것이 맞는지 궁금합니다. 

 => 네, 맞습니다. 예를 들자면 A클래스가 B인터페이스를 멤버변수로 선언하여 사용하고 있다면 A클래스가 B인터페이스를 의존하고 있는 것이며 이는 의존관계가 맺어진 것입니다.

 

2. 또한 앞 클라이언트와 서버 간주 질문의 답변 처럼, 클라이언트와 서버는 고정된 역할이 아니라 요청과 응답의 관점에 따라 달라지는 것으로 이해하였는데요, 그렇다면 이런 상황에서 OCP와 DIP를 지킨다는 것은 모든 관점에서 가능한 클라이언트들의 코드를 전부 변경하면 안되는것이 맞는지 궁금합니다.

=> 네, 맞습니다. 만약 OCP, DIP를 잘 지키면서 설계를 했다면 기능 확장관점에서 기존 코드(클라이언트)의 변경은 전혀 없을 것입니다.