Guice指南-自舉(Bootstrapping)你的應用

梧桐雨—168發表於2008-03-21

自舉(bootstrapping)對於依賴注入非常重要。總是顯式地向 Injector 索要依賴,這就將 Guice 用作了服務定位器,而不是一個依賴注入框架。

你的程式碼應該儘量少地和 Injector 直接打交道。相反,你應該通過注入一個根物件來自舉你的應用。容器可以更進一步地將依賴注入根物件所依賴的物件,並如此迭代下去。最終,在理想情況下,你的應用中應該只有一個類知道 Injector,每個其他類都應該使用注入的依賴關係。

例如,一個諸如 Struts 2 的 Web 應用框架通過注入你的所有動作類來自舉你的應用。你可以通過注入你的服務實現類來自舉一個 Web 服務框架。

依賴注入是傳染性的。如果你重構一個有大量靜態方法的已有程式碼,你可能會覺得你正在試圖拉扯一根沒有盡頭的線。這是好事情。它表明依賴注入正在幫助你改進程式碼的靈活性和可測試性。

如果重構工作太複雜,你不想一次性地整理完所有程式碼,你可以暫時將一個 Injector 的引用存入某個類的一個靜態的欄位,或是使用靜態注入。這時,請清楚地命名包含該欄位的類:比如 InjectorHack 和 GodKillsAKittenEveryTimeYouUseMe。記住你將來可能不得不為這些類提供偽測試類,你的單元測試則不得不手工安裝一個注入器。記住,你將來需要清理這些程式碼。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13270562/viewspace-214955/,如需轉載,請註明出處,否則將追究法律責任。

相關文章