Java 领域驱动设计:DTO在哪里?

Java 领域驱动设计:DTO在哪里?,java,architecture,domain-driven-design,dto,Java,Architecture,Domain Driven Design,Dto,我对领域驱动的设计架构有一个问题。在我尝试使用REST之前,一切看起来都很好。我应该在前端使用DTO而不是实体 我的架构看起来像: 我的问题是: 我是否应该使用web模块并在DTO中坚持使用它?这是正确的方法吗? 域驱动程序设计(DDD)方法于2003年由一本同名的书引入 其余的都是从2000年才发表的一篇名为的博士论文开始的。 休息需要一段时间来传播、建立和流行。它可能达到了“世界级的受欢迎程度” DDD主要指独立的单片系统,或者至少没有涵盖跨系统通信的各个方面 因此,即使你“根

我对领域驱动的设计架构有一个问题。在我尝试使用REST之前,一切看起来都很好。我应该在前端使用DTO而不是实体

我的架构看起来像:

我的问题是:

我是否应该使用web模块并在DTO中坚持使用它?这是正确的方法吗?

  • 域驱动程序设计(DDD)方法于2003年由一本同名的书引入
  • 其余的都是从2000年才发表的一篇名为的博士论文开始的。
    • 休息需要一段时间来传播、建立和流行。它可能达到了“世界级的受欢迎程度”

  • DDD主要指独立的单片系统,或者至少没有涵盖跨系统通信的各个方面
因此,即使你“根据DDD”工作,你也必须做出决定——如何处理这些方面

参考:DDD手册中介绍的模式列表及其关系:

您应该将REST看作是允许访问应用层服务的众多“端口”之一。REST、RPC、Websocket等。服务将使输入适应并映射到应用层调用,反之亦然。在每个服务边界上,您仍然可以灵活地调整响应,这不必与应用程序服务方法响应进行1-1映射,但可以

根据沃恩·弗农(Vaughn Vernon)的《实施领域驱动设计》(Implementing Domain Driven Design)一书,DTO生活在应用层。

理想情况下,领域模型应该由工厂创建。因此,工厂可以接受DTO并返回域模型的实例。或者您可以使用接受DTO的构建器模式来创建域模型。这样,您的域模型与DTO保持干净,并且架构图中的应用程序层应该接受DTO作为参数


在您的图表中,我不确定应用程序层的用途是什么。因为我们称之为应用程序的应该是域模型。

您还没有真正说明您的严重问题到底是什么。这个答案被选中的事实让我认为OP和回答者都不理解这个问题。我真的不明白,这只是用谷歌趋势图来定义DDD和REST。“或者至少没有涵盖跨系统通信的各个方面”