5

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

有人对单一责任原则和 WCF 服务有任何经验吗?这是否意味着你最终会得到很多小合同?如果是这样,您如何在应用程序中管理这些?

4

3 回答 3

7

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

从客户端/服务接口的角度来看,你应该保持你的合同精益求精。请参阅下面的示例。

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

接口隔离示例:我们这里有一个服务在工作,我们用它来对一些业务对象执行各种功能。原来的服务只有一个接口。随着它的发展,我们意识到我们拥有三个方法系列:数据对象持久化、业务更新、业务分析。我们分成三份合同。我们的客户端/服务实现了所有 3 个,所以我们唯一要做的就是将合同分成三个并在我们的 WCF 配置中设置两个额外的端点。非常简单。

希望这可以帮助。

于 2009-02-25T15:05:32.040 回答
1

我建议你在 hanselminutes 上收听这个播客:

Bob 叔叔的 SOLID 原则 - Robert C. Martin

这将有助于更好地理解事物。. .

于 2009-01-14T12:12:19.140 回答
1

您可以为与客户端交互的 Web 服务应用外观模式,并且在您的实现代码中,您可以应用单一职责以使其可维护。

于 2011-12-13T03:06:29.990 回答