我们目前正在使用大约 7 项服务。那里相当大。
有人对单一责任原则和 WCF 服务有任何经验吗?这是否意味着你最终会得到很多小合同?如果是这样,您如何在应用程序中管理这些?
我们目前正在使用大约 7 项服务。那里相当大。
有人对单一责任原则和 WCF 服务有任何经验吗?这是否意味着你最终会得到很多小合同?如果是这样,您如何在应用程序中管理这些?
我认为您将单一职责与接口隔离混淆了。
从客户端/服务接口的角度来看,你应该保持你的合同精益求精。请参阅下面的示例。
在 SRP 方面,这应该完全在服务实现内部,客户端不应该意识到这一点。如果您的服务代码太大,请将其拆分为类。然后让您的服务代码,至少在最初,充当外观并将所有调用转发到相关对象。稍后,您可以选择将服务拆分为多个服务。但是请注意,SOA 和面向对象的设计虽然重叠,但它们是分开的并且有不同的要求。
接口隔离示例:我们这里有一个服务在工作,我们用它来对一些业务对象执行各种功能。原来的服务只有一个接口。随着它的发展,我们意识到我们拥有三个方法系列:数据对象持久化、业务更新、业务分析。我们分成三份合同。我们的客户端/服务实现了所有 3 个,所以我们唯一要做的就是将合同分成三个并在我们的 WCF 配置中设置两个额外的端点。非常简单。
希望这可以帮助。
您可以为与客户端交互的 Web 服务应用外观模式,并且在您的实现代码中,您可以应用单一职责以使其可维护。