對於我所見過的所有DI示例,我始終將依賴關係視爲其他類(如服務)。但是一個對象實際上可能依賴於配置值,比如字符串和資源包裝器(File/Path/URI/URL,而不是整個大值字符串/文檔或讀者)。DI設計模式的值對象是否有效依賴關係?
請注意,這僅僅是關於Java或C#語法中的DI設計模式,並非任何特定的DI框架如何處理此問題。
例如,假設我有這個類,它返回一個String(相對路徑,基於一些模糊的實現邏輯)。它(而不是其各種實現者)對「projectLocation」具有配置/初始化依賴關係,因爲用戶可以在他們的機器上擁有各種項目,並且該類在調用時會根據給定的項目執行一些邏輯。
public abstract class PathResolver {
protected File projectFilesLocation;
public RoutinePathResolver(File projectFilesLocation) {
this.projectFilesLocation = projectFilesLocation;
}
public abstract String getPath(String someValue);
}
我不使用DI只是單元測試(喘氣我甚至沒有單元測試,現有的項目)。我只是想分開我的依賴/創造性關注和邏輯關注時期。
對於像我這樣一見鍾情的人,DI代表依賴注入(英文不是我的自然語言):) – LaGrandMere 2013-03-21 11:43:53