我正在编写客户端/服务器应用程序,其中客户端是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