2008-12-31 59 views

回答

1

這是一個相當廣泛的開放性話題,並賦予了很多主觀性,但我會嘗試從非常務實的角度回答。考慮到我所從事的項目以及我在IoC方面的經驗,我會說在有用性方面至少有三個重要方面。

  1. 配置 - 任何的IoC您使用需要有一些中央位置,使您可以配置容器的行爲。無論這是一個配置文件還是一組可以封裝在某個全局類中的API調用,如果該容器不易配置,那麼這將是一個頭痛的問題。
  2. 生命週期管理 - 您真的需要一個能夠允許不同對象生命週期的容器。您可能希望某個對象始終獲得新的IPersonCreator,但您只需要在任何給定時間存在一個IPersonService。
  3. 自動依賴注入 - 好吧,依賴注入是IoC構建於其上的概念,但您不希望自己管理它。這裏的想法是,如果您第一次要求獲得IPersonCreator,它應該自動解決所有依賴關係及其依賴關係等問題。

總體而言,您所需要的取決於該項目,但有幾個容器可以滿足您的需求。

1

在重要性的降序順序:

  1. 允許至少setter和構造子注入,從代碼
  2. 單獨的配置,
  3. 允許不同的樣式配置(XML或註解)的,

這些將需要超過15行的代碼,但這些似乎對我很重要。