0

服务具有 dal 和域模型层。域模型可以访问 dal 以通过它操作 db。现在需要从域模型中的另一个对象获得一些属性(这将显着简化客户端的使用)。但是我很困惑将这些属性(从“外星人”)对象填充到给定对象的位置。我可以在域模型中做到这一点吗?还是在服务本身?

由于我是 DDD 的新手,我会用我自己的话来解释它。项目结构如下: DAL(了解 DTO) DTO DomainModel(了解 DAL 和 DTO) Service(了解 DomainModel 和 DTO)

服务返回 DTO 并假设我需要向 dto1 添加一些属性(由 domainModel1 类操作),这些属性可以由 domainModel2 类自然检索。那么,问题是哪一层最适合这个?

PSSince 模型是一个系统的投影,即它的元素之间的关系,没有理由不从 domainModel1 调用 daominModel2,是吗?

4

1 回答 1

0

我需要向 dto1 添加一些属性(由 domainModel1 类操作)

这里的问题似乎是您的域对象操纵 DTO。您的域层应该与 DTO 和 DAL 无关。

DTO 是特定应用程序如何需要其数据呈现​​的详细信息。DAL 是特定应用程序如何需要存储其数据的详细信息。这些需要与域分开。

您的域不应该依赖于细节。详细信息应取决于域。

您提到需要将某些属性从另一个对象添加到 DTO 是出于客户端使用目的。因此,不要在域中处理它。在 Application 层创建一个 Service,它将 Entity1 和 Entity2 中的一些数据聚合到 DTO 中,然后将 DTO 传递给客户端。

于 2012-07-11T14:31:24.833 回答