나는 의존성 주입의 초보자입니다. 나는 결코 사용하지 못했고, 그것이 무엇에 관한 것인가에 대해서는 전혀 모른 적이 없다. 그러나이 주제에 대한 나의 마지막 공격 이후에, 나는 그것이 객체와 그것의 의존성을 분리시키는 방법이라는 것을 발견했다. 일단 객체의 구체적인 버전을 구체화 할 책임이 없다면 이제 컨테이너가 우리를 위해 그것을 할 것이고 준비된 객체를 우리 손에 전달할 것이므로DI에 관한 질문 및 몇 가지 문제를 해결하는 방법
이제 요점은 다음과 같습니다. "언제 사용해야합니까?", 항상 ??? 사실, 내가 초보자이고이 패턴을 사용하는 프로젝트를 보지 못했기 때문에 나는 그것을 내 도메인 객체에 어떻게 적용해야하는지 알 수 없다. 그것은 내 물건을 인스턴스화하지 않을 것입니다 컨테이너는 항상 나를 위해 그것을 할 것이지만, 다음의 몇 가지 의문이 온다 ...
1) 종속성의 일부가 UI에서 오는 oobjects는 어떻습니까? ;
public class User(String name, IValidator validator)
내가 UI에서 사용자 이름을 가져올 수 있음을 말하므로 conatiner 어떻게 그것을 알고 아직도 나를 위해이 객체 delliver 것인가?
2) 내가 겪고있는 Theres 다른 상황; 의존성이 이미 인스턴스화 된 객체라면, 예를 들어 SINGLETON 객체를 말하십시오. 나는 (Spring.NET, 예를 들어 HTTP 요청 범위에 대해 이야기하는) 종속성 beign 주입의 삶의 범위에 관한 theres 설정을 보았다 ... 그러나,, 요청 및 기타 웹 관련 것들이 내 프레 젠 테이션 레이어에, 그래서 어떻게 디자인 규칙을 위반하지 않고 내 프리젠 테이션 레이어와 내 도메인 레이어를 연결할 수 있습니까? (내 도메인은 소비되는 위치, 레이어 의존성 등을 전혀 인식하지 못함)
여러분 모두에게 진심으로 이메일을 보내고 싶습니다. . 매우 감사합니다.
많은 DI 질문 오늘 =)이 대답이 도움이되는지보십시오. : http : //stackoverflow.com/questions/5433211/difference-between-ninject-and-rhinomock-or-moq/5433231#5433231 – gideon
그 유용한 @ giddy, 감사합니다. 정확하게 요점은 아닙니다! =) – renatoargh
@Renato는 DI를 사용하는 이유를 설명하는 데 도움이 될 것이라고 생각했습니다. =) – gideon