我正在編寫客戶端/服務器應用程序,其中客戶端是Windows窗體應用程序,服務器是Windows服務中託管的WCF服務。請注意,我控制應用程序的兩側。在針對接口進行編碼時,工廠或WCF中的對象實例的依賴注入?
我想實現對接口進行編碼的做法:即我有一個由客戶端應用程序引用的共享程序集。該項目包含我的WCF ServiceContracts和接口,這些接口將暴露給客戶。我試圖只向客戶端公開接口,以便它們只依賴於合同,而不是任何特定的實現。這樣做的原因之一是,我可以隨時執行服務實施和域更改,而無需重新編譯和重新部署客戶端。在這種情況下,接口/合同不會改變。我只需要重新編譯和重新部署我的WCF服務。
我現在面臨的設計問題是:在客戶端上,如何創建對象的新實例,例如,如果客戶不知道Customer
的具體實現情況如何?我需要創建一個新客戶以保存到數據庫。
我是否使用依賴注入或Factory類來實例化新對象,還是應該讓客戶端創建具體實現的新實例?
我不是在做TDD,我通常只會有一個實現ICustomer
或任何其他暴露的接口。
@marc_s:我覺得你完全誤解我的問題。我想我應該修改它以使其更清晰。我完全理解WCF,以及你所解釋的一切。但我沒有這樣使用WCF。客戶端和服務器共享MyProject.Shared程序集,其中包含我的類型和接口(或我將稱之爲合同,但不包含[DataContract])。因此他們從同一個裝配中共享完全相同的類型。我現在用的是NetDataContractSerializer,並使用WCF模仿更接近於 – 2009-08-14 14:14:07