gpt4 book ai didi

c# - 领域驱动设计——产品盘点,我该怎么做?

转载 作者:行者123 更新时间:2023-11-30 17:44:31 24 4
gpt4 key购买 nike

我正在为一个包含产品和商店的通用应用程序建模。

一种产品可以在n家商店有一定数量的库存,一家商店可以备有多种产品。

也就是 n 到 n 的关系:

enter image description here

在我的模型中,Product 和 Store 都是聚合根。

我无法理解这种关系在我的类模型中如何使用 DDD。

库存的更新是由 Store 还是 Product 完成的?

ProductInventory 应该是一个新的聚合根吗?

最佳答案

根据您所附的图表,您正在应用关系范式。你提到了三个不同的概念。首先是产品!为了让您拥有商店,您必须以某种方式在您的可计算模型中表示产品。什么是产品?这是你从制造商那里得到的东西。一旦它在工厂建成,产品就可以发送给那些进行购买的人了!到目前为止,我们有一个产品!这是否意味着它已“连接”到一家商店?一点也不。为什么要将产品连接到商店?说到更好的语义,让我们重新提出问题并说明您为什么要在商店中购买产品?那是因为你想卖掉它! Product 抽象已经实现了它的目的!现在您需要在商店的上下文中表示产品,因此您必须使用另一个抽象来做到这一点……商店上下文中的产品是什么?这是 ProductInSale 或出版物!您的 Store 中有很多产品在销售,并且您知道通过使用另一个内聚抽象来跟踪产品,因此您提出了 Stock 新概念!

关注行为非常重要,但让我在不指定每个聚合的方法的情况下或多或少地恢复它的样子:

Product {id}
ProductInSale {id, productId, storeId, price}
Store {id, name}
Stock {id, productId, quantity}

希望对你有帮助塞巴斯蒂安。

关于c# - 领域驱动设计——产品盘点,我该怎么做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29655968/

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