服务层的目的

Ben*_*Ben 16 service-layer

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

  • 稀疏域模型(即某些函数的移动,如缓存,实例化)
  • 减少域模型的依赖性
  • API最小化

Han*_*eek 18

传统上(当不使用域驱动设计时)服务层或称为"业务层"的是您为应用程序编写所有业务逻辑的地方.因此,例如在处理提供银行贷款的应用程序中,服务层是代码所在的位置,决定是否应该提供某种贷款.显然,服务层需要一些关于贷款申请人的信息才能决定她的可信度.为了检索此信息,业务层调用"数据"或"存储库"层,该层处理将信息提取和存储到数据库中.

服务层不处理持久性或其他基础结构问题.

如果你的设计是域驱动的,那么anthares的回答是正确的.


ant*_*res 14

例如,在域驱动设计方面,域服务层用于无法在域对象的上下文中定义的操作.例如,如果您有一个对象CreditCard,您的服务层中的合适操作将是发行新的信用卡.

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

但是,在不同的解决方案体系结构和模式中,服务层可能具有不同的目的.


Pad*_*rag 5

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

服务层还有助于职责分离。服务层构成了数据库/持久层和客户端/ UI / Web层之间的中间部分。

正确设计服务层后,无论是Web客户端,Web服务(SOA)还是移动设备,任何客户端都可以使用它。