代码之家  ›  专栏  ›  技术社区  ›  Sorskoot

如何在大型WCF服务中使用单一责任原则?

  •  5
  • Sorskoot  · 技术社区  · 17 年前

    我们目前正在使用大约7种服务。那里相当大。

    有没有人在单一责任原则和WCF服务方面有经验?这是否意味着你最终会签很多小合同?如果是,如何在应用程序中管理这些内容?

    3 回复  |  直到 14 年前
        1
  •  7
  •   Szymon Rozga    17 年前

    我认为您将单一责任与接口隔离混淆了。

    从客户机/服务接口的角度来看,您应该保持合同的精简和刻薄。请参阅下面的示例。

    在SRP方面,这应该完全在服务实现内部,客户机不应该意识到这一点。如果服务代码太大,请将其拆分为类。然后让您的服务代码(至少在最初)充当外观,并将所有调用转发给相关对象。稍后,您可以选择将服务拆分为多个服务。但是要注意,SOA和面向对象的设计虽然重叠,但它们是分开的,并且有不同的需求。

    接口分离示例:我们在这里有一个服务,用于在一些业务对象上执行各种功能。原始服务有一个接口。随着它的发展,我们意识到我们有三种方法:数据对象持久性、业务更新、业务分析。我们分成三份合同。我们的客户机/服务实现了所有3个,所以我们唯一要做的就是将契约拆分为3个,并在我们的WCF配置中设置另外两个端点。很简单。

    希望这有帮助。

        2
  •  1
  •   Jomit    17 年前

    我建议你听听汉塞尔会议记录的播客:

    SOLID Principles with Uncle Bob - Robert C. Martin

    这将有助于更好地理解事情。…

        3
  •  1
  •   Thurein    14 年前

    您可以为与客户机接口的Web服务应用外观模式,并且在您的实现代码中,您可以应用单一的责任来使其可维护。

    推荐文章