首先,對不起我的英文不好,我希望你明白我在說什麼。依賴注入和依賴不使用
這是我的問題:
讓我們假設我有一個MVC應用包括標準路由器,控制器,模型(服務)層和某種分貝連接器。
模型層依賴於數據庫連接器,控制器依賴於模型/服務,頂級「應用程序」類取決於路由器和控制器。
我的對象層次結構是這樣的:
App -> ControllerFactory -> ServiceFactory -> DAO -> DbConnection
也許,上面寫的並不像最好的應用架構不斷,但我希望把重點放在其他的事情:
當我試圖實例化一個App類,我應該將所有的依賴關係傳遞給實例化的類;類依賴關係依次具有自己的依賴關係等等。
因此,我得到所有層次堆棧立即實例化。但是如果我在某些情況下不需要訪問數據庫呢?如果某些控制器用於渲染靜態模板而沒有模型交互?
我的意思是,如果在某些特殊情況下類不需要自己的依賴關係(並且在某些情況下它可以)呢?我應該有條件地注入依賴嗎?
我真的被困在這一點,我不知道該怎麼辦。
使用代理是一個非常好的主意,我會試試看,謝謝! –