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