放置域逻辑以更新聚合根的子项的正确位置在哪里?

发布于 2024-10-13 17:37:34 字数 227 浏览 7 评论 0原文

直接更新聚合根的子级还是仅通过其聚合根更新是最佳实践吗?例如,哪个是首选:

Order.UpdateOrderLineQuantity(orderLine, quantity);

Order.OrderLines[0].UpdateQuantity(quantity);

本部门的任何指导将不胜感激。

Is it a best practice to update children of an aggregate root directly, or only through its aggregate root? For example, which is preferred:

Order.UpdateOrderLineQuantity(orderLine, quantity);

or

Order.OrderLines[0].UpdateQuantity(quantity);

Any guidance in this department would be appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

巾帼英雄 2024-10-20 17:37:34

聚合根是一个封装相关子对象的对象,因此您应该使用第一种技术。

就像调用者不应该关心订单 ID 是否存储为整数或字节数组一样,他们也不应该关心或知道它是使用 OrderLines 还是 HideousLegacyObjects 来存储并操纵订单详细信息。

An aggregate root is an object that encapsulates related child objects, so you should use the first technique.

In the same way that callers shouldn't care if Order IDs are stored as integers or byte arrays, they shouldn't care or know whether it uses OrderLines or HideousLegacyObjects to store and manipulate order details.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文