gpt4 book ai didi

java - 领域对象/服务和业务逻辑层

转载 作者:IT老高 更新时间:2023-10-28 20:46:21 25 4
gpt4 key购买 nike

什么是软件架构中的领域对象和领域服务?我不熟悉它们或它们与业务逻辑层有何不同?

最佳答案

不同的人使用这些术语的方式有些不同,但这是我的看法:

1) “业务”和“域”大致是同义词。 “域”更为笼统,因为它不会假设您正在编写业务应用程序。因此,如果我们正在编写科学应用程序或游戏,我们可能更愿意将代码的相关部分称为“领域”代码而不是“业务”代码。因此,在本说明的其余部分中,我将使用“域”,因为它更通用。

2) “域逻辑”包含“域对象”和“域服务”。由于各种原因(技术和其他原因),许多架构采用这样一种设计,其中域逻辑被划分为用于存储数据的对象(“域对象”)和操作这些对象的对象(“域服务”)。 Martin Fowler and others have pointed out that that's not very OO因为OO概念的很大一部分是将功能与数据放在一起,这是对的,但它就是这样。域对象是数据,域服务是 do-stuff-with-the-data 部分。

3) 在领域驱动设计中,想法是回到真正的 OO 设计,因此各种服务方法会回到领域对象,这样您就有了 OO 意义上的对象,而不是有时称为“贫血”物体。在 DDD 中,域对象本身更加健壮,因此它们形成了域逻辑。实际上可能还有一些领域服务,但在 DDD 中这通常比在更传统的领域对象与服务模型中要小。

关于java - 领域对象/服务和业务逻辑层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5589141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com