在一個使用DI框架的大型項目中(例如Ninject),在實現一個新的「服務」以找出可用作依賴關係的其他「服務」時,存在哪些選項。在使用DI之前,我注意到在我們的代碼庫中有一種傾向,即獲得對可以訪問所有可用功能的「上帝」對象的引用,然後Visual Studio的智能感知對於發現所有可用功能變得非常有用(顯然這是方法是唯一可能的,因爲首先有這樣一個對象的建築決策很差)。使用DI框架時,新服務如何知道其他服務可用?
我所能一些可能的答案,有興趣什麼爲他人工作:
- 你應該知道你正在工作的不夠好, 知道其他類/存在服務(例如整個系統,如果我有 靜態類,我只需要知道他們存在能夠 使用它們)。
- 您保持良好的 代碼庫的外部文檔,以便所有的開發人員都能理解所有的類/服務 (這給我帶來了很大的文檔負擔)。
- 創建一個API來查詢DI容器(Ninject內核)中所有綁定的列表 ,以查看哪些服務可用(可能只有 單身人士)。這也可以作爲構建系統的一部分完成, 在開發者 可以參考的每個構建上自動生成文檔。
這對於其他開發者來說有沒有問題?