【问题标题】:WCF - separating service contracts and partial deriving?WCF - 分离服务合同和部分派生?
【发布时间】:2010-03-18 21:24:17
【问题描述】:

因此,我已将我的 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 只需要实现它需要的部分吗?

谢谢

【问题讨论】:

    标签: .net wcf servicecontract


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢...我在想这可能是答案,我想只是想要额外的确认...我将采用这些方法并将它们拆分出来,然后在当前包含的类中继承它们两者...这样 IServiceContract2 可以只使用需要的 IServiceContract1 可以继续继承所有...再次感谢您的回答...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多