gpt4 book ai didi

domain-driven-design - DDD 如何获取值对象列表

转载 作者:行者123 更新时间:2023-12-03 09:43:34 26 4
gpt4 key购买 nike

我有一个域模型

  • Customer - 聚合根 - 因为没有客户就无法存在订单
  • Order - 实体
  • OrderStatus - 值对象

  • 在我的表单中,我需要所有 OrderStatuses 的列表.

    我应该从存储库中获取一个空的客户实体 (AR),其中包含一个包含所有 OrderStatuses 的列表的空订单实体吗?这很尴尬。

    最佳答案

    嗯,这总是取决于您的问题域,但缺乏更多信息,我会说您可能需要稍微打破您的建模。
    即使没有客户就不能存在订单,但它不会是客户 AR 下的子实体。您需要引入限界上下文的概念。
    Customer 将是一个 BC 的 AR,而 Order 将是它自己的 BC 的 AR。
    在这种情况下,您将使用 CustomerId 属性(而不是使用对象引用)从 Order 引用 Customer,因为它们属于不同的上下文,因此它们甚至可以存在于单独的微服务、单独的数据库中。
    你知道我要去哪里:获取一个空的 Customer 和一个空的订单(或订单列表)只是为了到达订单状态列表是没有意义的。
    即使 Order 和 Customer 确实属于同一个 BC,OrderStatus 也是引用数据,最好用枚举类型表示(或者更好,使用枚举模式)。
    看看这个附加信息:
    Reference data as code
    Entities, Value Objects, Aggregates and Roots

    关于domain-driven-design - DDD 如何获取值对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4802746/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com