gpt4 book ai didi

domain-driven-design - DDD : Who is responsible for the creation of value object and entity?

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

在域驱动设计中,客户端直接与聚合根对话以实现业务逻辑,聚合根可以由工厂创建或从存储库加载。为了实现业务逻辑,在某些情况下我们必须创建一个新的值对象,所以我的问题是:

  • 应该聚合负责值对象的创建,也就是说我们将值对象的创建封装在聚合根中。
  • 可以不使用聚合直接在应用服务中创建值对象吗?
  • 最佳答案

    Can I create value object directly in application service without aggregate?



    当然,继续前进。这是一种非常常见的模式——例如,在客户端/服务器架构中,客户端将向应用程序发送一条消息,邀请对域模型进行某些操作(命令/查询)。该消息将被设计为跨越进程边界——换句话说,它是一个数据传输对象。应用程序组件将接收该消息,并将其重新表达为域可以理解的值对象。

    示例:域的查询可能会询问某个帐户的详细信息,该帐户由 UUID 标识。所以最初的 DTO 可能是一个字符串。应用层将该字符串抛出到 JSON 解析器中,然后找到帐户 id 参数(“只是数据”),并使用它创建一个 AccountId 值对象(域将识别该对象)。

    值(value)对象的一部分是平等的对象可以自由地相互替代。没人关心你有哪 7 个。

    we encapsulate the creation of value object in aggregate root.



    您的聚合代码也可能会创建值对象。对聚合状态的更改通常需要创建/计算新值。没有错。

    关于domain-driven-design - DDD : Who is responsible for the creation of value object and entity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37361212/

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