Design patterns 域模型对象以访问另一个域模型对象

Design patterns 域模型对象以访问另一个域模型对象,design-patterns,domain-driven-design,Design Patterns,Domain Driven Design,服务具有dal和域模型层。域模型可以访问dal,以便通过它操作数据库。现在需要从域模型中的另一个对象获得一些属性(这将大大简化客户端的使用)。但我不知道在哪里将这些属性(从“alien”)对象填充到给定对象中。我可以在域模型中完成吗?还是服务本身 因为我是DDD的新手,所以我会用自己的话来解释。项目结构如下: DAL(了解DTO) DTO DomainModel(了解DAL和DTO) 服务(了解DomainModel和DTO) 服务返回DTO,假设我需要向dto1(由domainModel1类操

服务具有dal和域模型层。域模型可以访问dal,以便通过它操作数据库。现在需要从域模型中的另一个对象获得一些属性(这将大大简化客户端的使用)。但我不知道在哪里将这些属性(从“alien”)对象填充到给定对象中。我可以在域模型中完成吗?还是服务本身

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

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

另外,由于模型是一个系统的投影,即其元素之间的关系,因此没有理由不从domainModel1调用daominModel2,是吗

我需要向dto1添加一些属性(由 域模型(1类)

这里的问题似乎是您的域对象操纵DTO。您的域层应该不知道DTO和DAL

DTO是特定应用程序需要如何显示其数据的详细信息。DAL详细说明了特定应用程序需要如何存储其数据。这些需要与域分离

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


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

通过alien,您的意思是in位于另一个聚合根目录中吗?如果您可以使用DDD术语,那么您可以在不显示类结构的情况下提出一些问题。但如果不是,你需要展示足够的结构,让人知道为什么你认为这个对象是alienSorry,我对DDD是相当陌生的。我所说的alien只是指,如果要修改classA以从classB中获得一些属性,那么我应该在哪里使用classB的功能来检索其属性,然后将其中一些属性复制到classAdo中呢?您考虑过一些用例吗?它取决于用例和满足用例的类。如果类B可以访问dal,并且与类a有关系,则没有一般的DDD原因说明更新a的逻辑不能在B中