在依賴注入中應對腫的構造函數 >過度複雜的構造函數,如此示例:
是一個常見的問題。 為什麼不直接將容器(
<code>public MyClass(Container con, SomeClass1 obj1, SomeClass2 obj2, ... )</code>)直接注入每個類呢? 這大大簡化了構造函數,但它具有重大的缺點。 從本質上講,它將容器變成了一個光榮的靜態工廠。
Container con
的問題 使用容器作為服務定位器使其表現得像全局靜態訪問點。這違反了單一責任原則,使測試和可維護性更加困難。 該類與容器的實現緊密耦合,阻礙了靈活性和可重複性。
> 與立面服務進行重構構建器注入的力量在於它強調違反單一責任原則的能力。 當構造函數變得笨拙時,這是重構的明顯信號。 解決方案通常涉及創建立面服務。
外觀服務引入了更高級別,更抽象的接口。該界面隱藏了與眾多細粒依賴性相互作用的複雜性。 這可以促進清潔劑,更易於管理的代碼並提高可檢驗性。
>以上是依賴注入:為什麼不只是注入容器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!