1. 의존 객체를 직접 생성하는 방식



아래와 같은 객체를 생성해야 한다는 가정을 들어보자.


new A( new B);


이렇게 의존 객체를 직접 생성하는 방식을 사용하게 되었을 때 내용은 아래 사진과 같이 되게 된다.




이렇게 구성되어 있을 때 만약 A가 생성할 때 B가 아닌 C를 참조해야 한다고 할 때, 다음과 같이 작성했던 모든 클래스들에 대해서 코드를 고쳐야 하는 상황이 온다.




2. 의존 객체를 외부에서 조립하여 내리는 방식



의존 객체를 직접 생성하는 방식과 달리 Dependency Injection는 의존 객체를 외부로부터 전달받는 구현 방식이다.



이 경우 A가 B가 아닌 C를 참조하게 되었을 때는 이를 정의하고 있는 파일만 고쳐주게 되면 된다는 것이다.



지금 설명할 때에는 3개의 클래스만 영향을 받기 때문에 직접 구현하는 것도 나쁘지 않다 생각할 수 있지만, 이를 몇 십개 이상의 파일을 직접 찾아 고친다고 생각하고 다시 한번 생각해보자. 

+ Recent posts