实现服务层方法的指南

Posted

技术标签:

【中文标题】实现服务层方法的指南【英文标题】:Guidelines for implementing service layer methods 【发布时间】:2011-12-30 03:43:27 【问题描述】:

我们正在开发一个 3 层应用程序,其中表示层与服务层通信,而服务层又与业务层通信。业务层可以访问数据库。目前我们已经实现了业务层来保存表的 CRUD 操作。 对于组织服务层和业务层的方法,我们有一些疑问。

首先,服务层的方法应该如何分组?我们是否应该基于页面对方法进行分组,其中页面所需的所有数据都由服务的方法提供。还是应该通过多个服务调用来获取页面数据?

另一个问题是在业务层组织方法,似乎对于服务层的任何方法,我们都必须在业务层实现相应的方法。如果我们按照这个逻辑,服务层的方法就像傻瓜一样,只负责授权和验证。例如:当从两个表的连接中获取数据时,我们应该在服务层获取两个表,然后在服务层进行连接,还是我们应该在业务层有一个功能来做同样的事情。从本质上减少了服务层和业务层之间的数据传输。

【问题讨论】:

【参考方案1】:

请查看DTO 模式。使用 DTO 模式 - 您可以最大限度地减少对后端服务的调用次数。并且给定 DTO 可以映射到多个 BO。您需要根据数据需求设计 DTO 以填充 UI。

【讨论】:

【参考方案2】:

看起来我想要的是遵循 REST 架构。这意味着我应该保持服务层和表示层之间的接口统一。 服务层负责授权,并将所有调用委托给业务层。在业务层,我们保留在将它们发送到 SL 之前序列化为 XML、JSON 或其他任何内容的 DTO。 真正帮助我的是阅读 REST 文章并详细探索它们。

【讨论】:

以上是关于实现服务层方法的指南的主要内容,如果未能解决你的问题,请参考以下文章

thrift - processor服务分配层

全网最全安全加固指南

微服务运行指南——For Cattle

基于Delphi的三层数据库系统的实现方法

聚焦云原生,微服务拆分设计规范指南权威解读

服务层,实现定时缓存