【问题标题】:DTOs right place in a multilayered applicationDTO 在多层应用程序中的正确位置
【发布时间】:2025-12-10 08:25:02
【问题描述】:

在多层应用程序中,DTO(数据传输对象)的正确位置是什么?有这样的观点 DTO 是用于数据存储层到域层的通信,但不适合域层到上层逻辑层的交互。

我正在开发具有以下层的应用程序:数据存储、域、服务、表示。那么连接服务层和表示层的正确方法是什么?我认为从域层外部开放对域对象的访问是封装违规,因此解决该任务的唯一方法是使用 DTO,但我不确定。

【问题讨论】:

    标签: dto n-tier-architecture


    【解决方案1】:

    很多人(尤其是DDD爱好者)说DTO只是为了远程调用,基本上是为了封装那些远程对象。

    话虽如此,我真的更喜欢尽可能明确地将我的表示层与我的服务层分开。表示层需要与服务层大量隔离。尤其是在较厚的客户端成为新规范的情况下(Angular 网站、移动设备等)。这意味着将您的服务层视为远程服务通常是一项不错的投资。无论如何,随着时间的推移,它可能会成为一个真正的远程接口。

    UI/服务边界通常也是最难确定合同故障的地方...大多数 UI 框架在识别重大更改方面做得很糟糕。

    【讨论】:

      最近更新 更多