ace*_*es. 39 java business-logic-layer domain-object
什么是软件架构中的域对象和域服务?我不熟悉它们或它们与业务逻辑层有何不同?
Wil*_*ler 80
不同的人以不同的方式使用这些术语,但这是我的看法:
1)"业务"和"域"大致是同义词."域"更为通用,因为它不会假设您正在编写业务应用程序.因此,如果我们正在编写科学应用程序或游戏,我们可能更愿意将代码的相关部分称为"域"代码而不是"业务"代码.因此,在本解释的其余部分中,我将使用"域",因为它更通用.
2)"域逻辑"包括"域对象"和"域服务".由于各种原因(技术上和其他原因),许多体系结构采用一种设计,其中域逻辑被分成用于存储数据的对象("域对象")和操纵那些的对象("域服务").Martin Fowler和其他人已经指出,由于OO概念的很大一部分是将功能与数据结合在一起,所以这并不是非常OO,这是正确的,但事实就是如此.域对象是数据,域服务是与数据一起做的事情.
3)在域驱动设计中,想法是回到真正的OO设计,因此各种服务方法回到域对象,以便你有OO意义上的对象,而不是有时被称为"贫血"的对象"对象.在DDD中,域对象本身更健壮,因此它们形成域逻辑.实际上,可能仍然存在一些域服务,但是DDD中的这种服务通常比更传统的域对象与服务模型相比更小.
| 归档时间: |
|
| 查看次数: |
29414 次 |
| 最近记录: |