해결된 질문
작성
·
160
0
의존관계 주입을 사용하면 클라이언트 코드를 변경하지 않고, 클라이언트가 호출하는 대상의 타입 인스턴스를 변경할 수 있다.
의존관계 주입을 사용하면 정적인 클래스 의존관계를 변경하지 않고, 동적인 객체 인스턴스 의존관계를 쉽게 변경 할 수 있다.
결국 이 두문장은 똑같은 말 아닌가요?
클라이언트 코드를 변경하지 않는다 == 정적인 클래스 의존관계를 변경하지 않는다
클라이언트가 호출하는 대상의 타입 인스턴스를 변경할수있다 == 동적인 객체 인스턴스 의존관계를 쉽게 변경할수있다.
결국 실행이 되는부분은 클라이언트코드니까 동적으로 실행될때 정적인 클래스 의존관계가 유지가 되겠고,
인스턴스가 변경할 수 있다는 의미는 런타임중에 정률 할인 정책으로 될지, 정액 할인 정책으로 될지가 동적인 인스턴스의 관계를 변경할수있다는 의미로 들려서 결국 두문장은 같은의미로 사용되지않았나 싶습니다
답변 2
0
안녕하세요. 박민성님, 공식 서포터즈 코즈위버입니다.
네 맞습니다. 말씀하신것처럼 두 명제는 결국 같은 내용을 말하고 있습니다 🙂
인스턴스는를 외부에서 생성하여 주입하므로, 의존관게 주입받은 객체 코드를 변경하지 않아도 됩니다.
특히 인터페이스를 이용할 경우 이 장점을 극대화 할 수 있습니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
박민성님의 의존관계 주입에 대한 질문과 관련하여, 강사님이 제공한 관련 내용을 참조하시면 도움이 될 것 같습니다. 아래 링크의 답변에서 정적 의존관계와 동적 객체 인스턴스 의존관계에 대한 설명을 확인해보세요.
또한, 다음 링크에서는 DI와 IoC에 대한 설명을 찾아볼 수 있습니다.
각 링크를 참고하시면 의존관계 주입과 관련한 이해가 더욱 깊어질 것입니다.