2

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

我曾经拥有包含 3 个函数的 IOneServiceContract: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 只需要实现它需要的部分吗?

谢谢

4

1 回答 1

1

如果要实施服务合同,则必须全部实施。这就是为什么SOLID 开发原则中的“我”被称为“接口隔离原则”:让你的接口尽可能小,这样实现者就不必实现一堆他真的不感兴趣的方法。

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

于 2010-03-18T21:29:17.767 回答