【问题标题】:is need Domain driven ApplicationService DTO for data layer数据层需要域驱动的ApplicationService DTO
【发布时间】:2014-07-21 16:25:50
【问题描述】:

应用域驱动设计我有点困惑。我正在使用 C# 和 Java

我有这样的图层:

  • 域
  • 应用服务
  • 数据层
  • 表示层

ApplicationService 层位于表示层和数据层之间。 AppplicationService 从 Data 层获取数据并将其转换为 PresentationDTO 对象并发送到表示层。

我是否需要在 ApplicationService 和数据层之间建立一个新的数据传输对象 (EntityFrameworkDTO)。我应该生成 DTO 以在存储库中使用,还是直接在存储库层使用域实体?

您是否曾经应用过领域驱动设计?

【问题讨论】:

    标签: java c# design-patterns domain-driven-design ddd-service


    【解决方案1】:

    一般来说,对于复杂场景,当您的模型分解为多个视图时,反之亦然,最好使用 ViewModel 或数据传输对象来更好地管理视图,因为视图的需求与域需求不同。 现在,在域驱动设计中,因为您的应用程序服务应该在存储库和表示之间发挥重要作用,所以您必须拥有 DTO,因为您将从服务层获取表示层中的业务对象。在其他情况下,您必须在表示层中使用域实体,这将使您的域实体成为非 POCO。 希望对您有所帮助。

    【讨论】:

    • 我已经在 ApplicationService 和 Presentation 之间使用了 DTO。我应该在存储库和域对象之间使用不同的 DTO。还是直接在数据层使用领域实体?
    • 哦,对不起,我认为您在服务层使用与否之间有两种方式。根据我在 DDD 上的经验,我从未见过在域和存储库之间使用 DTO 的项目,因为您应该为包含其他实体和值对象的域的聚合根创建存储库。没有必要海事组织
    猜你喜欢
    • 2011-04-26
    • 2015-12-13
    • 2020-08-26
    • 2013-11-13
    • 2014-05-05
    • 2011-12-25
    • 1970-01-01
    • 2015-04-18
    • 2011-01-04
    相关资源
    最近更新 更多