服务层是外层还是不?如果不是那么它来到哪一层?

时间:2009-12-03 07:42:13

标签: 3-tier

服务层是否是外层?如果没有那么它会在哪个层下?

请回复

谢谢

1 个答案:

答案 0 :(得分:2)

您可以通过多种不同方式组织系统,而不仅仅是一个分层架构。我从未使用过术语“外层”。以多种方式对同一系统进行分析甚至是合理的逻辑架构,物理架构......

如果我们知道您在讨论的架构中选择了哪些层,我们只能回答您的问题,那么应该可以了解服务所在的位置。你只告诉我们“外部”,我们不知道有什么替代品。

我通常会考虑演示,业务逻辑和持久性。在这种情况下,服务位于业务逻辑层。

我认为将服务视为系统的公共接口是合理的,因此在某种意义上它们位于“外部”层。

在回复评论时添加:

对此没有简单的答案。这一切都取决于我们所说的“服务”和我们的层正在做什么。让我们举一个具体的例子:假设我们的UI想要显示发票的详细信息。我们可能会选择创建服务

InvoiceDto getInvoiceDetails(int invoiceNumber)

很明显,此服务的实现位于业务逻辑层中。接口可能是一个简单的库,也可能是一个Web服务,具体取决于我们在各层之间的通信方式。

然后我们决定向客户公开该服务,以便他们的应用程序可以通过互联网调用该服务。我们在Web层中可能会有一些代码可能会公开REST服务

http://dave.org/service/invoice/nnnn

显然,在Web Layer中运行了一些适配器代码,我们可以管理身份验证等。但服务在哪里?这只是adapeter吗?这是业务逻辑吗?是两个吗?

以我的方式思考,真正的服务是在业务层中运行的逻辑,其余的只是管道。