因此,我已将我的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只需要实现它需要的部分吗?
由于
答案 0 :(得分:1)
如果要实施服务合同,则必须全部实施。这就是为什么S.O.L.I.D. development principle中的“I”被称为“接口隔离原则”:使您的接口尽可能小,以便实现者不必实现他真正不感兴趣的一堆方法。
看起来你基本上已经接受了这个原则 - 问题是:你能以不同的方式分割你的方法吗?或者将它们分成三个单独的服务合同会不会受到影响?