gpt4 book ai didi

domain-driven-design - 在哪里放置这个不变量?

转载 作者:行者123 更新时间:2023-12-01 03:41:40 25 4
gpt4 key购买 nike

我正在开展一个辅助项目,以在“每日交易”域中学习和应用 DDD。在我的购买环境中,我有一个不变量,用户每笔交易只能购买“x”笔交易。

因此,我的交易汇总加载所有用户的所有购买只是为了检查并查看用户购买此交易的次数(如果有的话)似乎很浪费。我看到有两种方法可以解决这个问题。

  • 将此逻辑放在域服务中,该服务允许在调用 Deal 聚合上的 Purchase 方法时已经满足先决条件。
  • 我的存储库实现总是可以为购买用户填充交易的购买集合。嗯……不确定这个。

  • 任何指导都会很棒!

    最佳答案

    我会采用第二种方法,但有一个重要的变化。我会创建一个名为 PurchasedDeal 的值对象,它只包含一个 DealID 和 Quantity 字段。 User 聚合可以加载这个更轻量级的购买历史对象的集合。这种方法的性能应该不错,因为我猜普通用户只有几十条购买记录。

    还请记住,使用 DDD,您可以并且可能应该为每个有界上下文使用不同的模型。因此,您可以在交易/购买的上下文中像这样设计您的用户聚合。但是,如果不需要,您在另一个上下文中的用户聚合看起来会有所不同,并且没有购买历史记录。

    关于domain-driven-design - 在哪里放置这个不变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30310531/

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