어플리케이션 영역
메인 영역
메인 영역이 조립을 하게 되면 모든 의존이 메인 영역에서 어플리케이션 영역으로 향한다. 반대의 경우 어플리케이션 영역에서 메인 영역으로 의존은 존재하지 않는다. 메인 영역을 변경해도 어플리케이션 영역은 변경되지 않는 다는 것을 뜻한다. 어플리케이션에서 사용할 객체를 교체하기 위해 메인 영역의 코드를 수정하는 것은 어플리케이션 영역에는 어떠한 영향도 끼치지 않는다.
서비스 로케이터
콘크리트 클래스를 직접 사용해서 객체를 생성하게 되면 의존 역전 원칙을 위반하고 OCP 원칙을 위반하게 된다. 서비스로케이터를 사용하게 되면 서비스로케이터를 통해서 의존 객체를 찾게 되는데 몇가지 단점이 발생한다.
이 단점을 보완하기 위한 방법이 DI이다. DI는 필요한 객체를 직접 생성하거나 찾지 않고 외부에서 넣어 주는 방식이다.
DI를 통해 의존객체를 관리할때는 객체를 생성하고 각 객체들을 의존관계에 따라 연결해 주는 조립 기능이 필요하다.
DI를 적용하려면 의존하는 객체를 전달받을 수 있는 방법을 제공해야 한다.