IoC와 자동 배선에 대해 저를 괴롭히는 것은 생성 된 객체에 대한 IoC의 유용성입니다.IoC - 구성 요소 내부에서 생성 된 객체에 대한 자동 와이어링
시스템 전체에서 사용되는 정적 인 Utils 클래스가 있다고 가정 해 보겠습니다. IoC와 DI를 사용하기로 결정했을 때, 나는 쉽게 Utils를 정적이 아니게 변경하고 모든 구성 요소가 그 인스턴스를 받도록했습니다.
그러나 자동 배선은 부트 스트랩 중에 만들어진 구성 요소, 런타임 중에 생성되거나 사용자 작업의 응답으로 생성되는 개체 및 Utils를 사용하는 경우 자동 배선이 작동하지 않는 경우에만 잘 작동합니다. 대신 런타임 중에 생성되는 모든 객체의 모든 인스턴스에 Utils 인스턴스를 수동으로 전달해야합니다.
내가 볼 수있는 유일한 방법은 주위에 IoC 컨테이너를 통과시키는 방지 패턴을 사용하는 것이다.
다른 방법이 있습니까? 아니면 모든 인스턴스와 클래스에 수동으로 Utils를 전달해야합니까?
참고 : 이것은 디자인의 문제가 아닙니다. 물론, 나는이 은유적인 Utils의 사용을 다양한 방법으로 최소화 할 수 있었지만, 많은 경우에 그것은 피할 수없는 것이었다.
감사합니다. 그것은 약간의 생각 재료입니다. 내 생각 엔 [Automatic Factory] (http://blogs.msdn.com/b/stuartleeks/archive/2010/04/28/unity-2-0-automatic-builders.aspx)도 옵션일까요? – VitalyB
물론,하지만 당신이 대답을 태그하지 않았기 때문에 나는 일반적인 대답을했습니다. Btw, 나는 일을 단순하게 유지하고 DI 프레임 워크의 특정 항목을 사용하지 않는 것을 좋아합니다. 실제로 일을 단순하게하지 않는 한 (적은 코드는 그 자체로 단순하지 않습니다). – Steven
좋은 지적. 나는 단결을 사용하여 질문을 그런 것으로 표시했습니다. DI 프레임 워크를 사용하지 않습니까? DI를 수동으로 수행하는 것은 어려운 일이 될 수 있습니다 ... 여러 구성 요소가있을 때 각각 다른 생성자 매개 변수가 필요합니다 (그리고 DI 프레임 워크의 평생 지원은 언급하지 않았습니다) ...하지만 다시 한 번 초보자입니다. DI와 함께, 내 의견은 아직 바뀔지도 모릅니다. 감사! – VitalyB