WCF - 分离服务合同和部分派生?

时间:2010-03-18 21:24:18

标签: .net wcf servicecontract

因此,我已将我的WCF服务合同分离为离散合同以供重复使用。

我用IOneServiceContract包含3个函数:Function1,Function2,Function3。

我已将此服务合同分成两个独立的服务合同:IServiceContract1和IServiceContract2。 IServiceContract1包含Function1,IServiceContract2包含Function2和Function3。这将允许我重新使用离散的IServiceContract1和/或IServiceContract2来构建一个代表公共服务合同的新服务合同。

知道这一点......希望我没有搞砸描述,这样你就无法完成其余的工作......

我有两个服务IService1和IService2 IService1实现了IServiceContract1和IServiceContract2。这非常有效,因为IService1需要实现所有功能:Function1,Function2,Function3。

然而,IService2不需要实现IServiceContract2的所有功能,只需要实现Function1。

IService2是否有办法部分实施合同?我知道这听起来很荒谬。处理这种情况的正确方法是尝试逻辑地分离IServiceContract2,以便IService2只需要实现它需要的部分吗?

由于

1 个答案:

答案 0 :(得分:1)

如果要实施服务合同,则必须全部实施。这就是为什么S.O.L.I.D. development principle中的“I”被称为“接口隔离原则”:使您的接口尽可能小,以便实现者不必实现他真正不感兴趣的一堆方法。

看起来你基本上已经接受了这个原则 - 问题是:你能以不同的方式分割你的方法吗?或者将它们分成三个单独的服务合同会不会受到影响?