我认为服务层的目的包括以下内容是否正确?

  • 域模型的稀疏化(即某些功能的移动,例如缓存、实例化)
  • 减少对领域模型的依赖
  • API最小化
有帮助吗?

解决方案

例如,就领域驱动设计而言,领域服务层用于无法在域对象上下文中定义的操作。例如,如果您有一个对象 CreditCard,那么服务层中合适的操作就是发行一张新的信用卡。

在更大的应用程序中使用贫血域模型模式,其中域对象仅用作数据容器,整个业务逻辑位于域服务层中(这有时被称为反模式,但在大型解决方案中可能非常有用,并添加另一个抽象层)。

不过,在不同的解决方案架构和模式中,服务层可能有不同的目的。

其他提示

传统上(当不使用领域驱动设计时)服务层(也称为“业务层”)是为应用程序编写所有业务逻辑的地方。因此,例如在处理发放银行贷款的应用程序中,服务层是决定是否应发放特定贷款的代码所在的位置。显然,服务层需要一些有关贷款申请人的信息,以便能够对其可信度做出决定。为了检索此信息,业务层调用“数据”或“存储库”层,该层负责提取信息并将其存储到数据库中。

服务层不处理持久性或其他基础设施问题等问题。

如果您的设计是领域驱动的,那么 Anthares 的答案是正确的。

顾名思义,服务层提供不直接由任何其他域对象负责的服务。

服务层还有助于解耦责任。服务层形成数据库/持久层和客户端/UI/Web 层之间的中间部分。

正确设计服务层允许从任何客户端使用它,无论是 Web 客户端还是 Web 服务 (SOA) 或移动设备。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top