2012-07-19 37 views
1

我有代碼看起來像FF:依賴注入使用情況

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

動態運行時注入超出範圍。你將不得不通過模塊來配置使用哪個實現。你仍然可以使用一個工廠(看看多重綁定和輔助注入),並節省自己的工作來設置你的實例,儘管...