這對大多數人來說似乎很明顯,但我只是想確認依賴注入(DI)依賴於接口的使用。依賴注入(DI)依賴於接口嗎?
更具體地說,對於在其構造函數中具有某個接口作爲參數的類或者定義爲屬性(又名Setter)的某個接口的情況下,DI框架可以移交具體類的實例以滿足該類接口的需求。 (道歉,如果這種描述不清楚,我無法正確描述這一點,因爲術語/概念對我來說還是一個新的東西。)
我問的原因是我目前有一個類有一個依賴排序。不是一個對象依賴關係,而是一個URL。這個類看起來是這樣的[C#]:
using System.Web.Services.Protocols;
public partial class SomeLibraryService : SoapHttpClientProtocol
{
public SomeLibraryService()
{
this.Url = "http://MyDomainName.com:8080/library-service/jse";
}
}
的SoapHttpClientProtocol類有一個名爲Url
一個公共屬性(這是一個普通的老「串」),這裏的構造函數初始化它的硬編碼值。
我可以使用DI框架在施工時注入不同的值嗎?我想不是因爲this.Url
不是Interface
;這是一個String
。
[順便說一下,根據我正在使用的代碼中的註釋,上面的代碼是「由wsdl自動生成的」。所以我並不特別想改變這個代碼,儘管我沒有看到自己重新生成它。因此,也許改變這個代碼是好的。]
我可以看到自己製作的備用構造函數的字符串作爲參數,並初始化this.Url
這種方式,但我不知道這是關於正確的方法保持鬆散耦合分離的擔憂。 (SoC)
針對這種情況的任何建議?
我給你的綠色複選標記,但大衛和彼得的答案也很好。感謝您澄清接口不是必需的。 – Pretzel 2010-07-15 17:42:53