2010-02-19 35 views
13

我正确地认为服务层的目的包括以下几点:服务层的目的

  • 稀疏域模型的(即,某些功能运动等在高速缓存,实例化)的依赖关系
  • 减少从域模型
  • API最小化
+1

我得到了我的答案....通过阅读本页....感谢提问。 – 2013-02-18 09:12:12

回答

14

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

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

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

16

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

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

如果您的设计是域驱动的,anthares的答案是正确的。

+0

非常清晰,清脆...谢谢。 – 2013-02-18 09:09:15

4

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

服务层也有助于解除责任。服务层构成了数据库/持久层和Client/UI/Web层之间的中间部分。

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