用于访问另一个域模型对象的域模型对象

时间:2012-07-11 09:59:28

标签: design-patterns domain-driven-design

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

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

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

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

1 个答案:

答案 0 :(得分:0)

  

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

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

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

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

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