2012-07-19 4 views
1

내가 코드를 가지고는의존성 주입 사용하는 경우

Interface i; 
if (someCondition) { 
    ImplementationA a = new ImplementationA(); 
    a.setFieldA(someValueA); 
    a.setFieldB(someValueB); 
    i = a; 
} else { 
    ImplementationB b = new ImplementationB(); 
    b.setFieldC(someValueC); 
    i = b; 
} 
// Do something with i. 

내 질문은 :

  1. 내가의 범위를 넘어이 여기에 의존성 주입을 사용하거나입니다해야 기술?
  2. 여기에 의존성 주입을 사용해야하는 경우 Google Guice를 사용하여 어떻게 수행 할 수 있습니까?

답변

1

동적 런타임 주입이 범위를 벗어납니다. 모듈을 통해 사용할 구현을 구성해야합니다. 당신은 여전히 ​​공장을 사용할 수 있습니다 (multibindings와 원조 된 주사를보십시오) 그리고 당신 자신의 인스턴스를 설정하는 작업을 제외하고 ...