7得票1回答
如何向聚合根添加子实体是推荐的方式?

哪种方法更好,先创建子实体,然后将它们传递给聚合根进行添加,还是让聚合根创建它们?例如: Order.AddOrderLine(new OrderLine(product, quantity, ...)); 或者 Order.AddOrderLine(product, quanity,...

7得票1回答
DDD客户、联系人和地址(聚合根)

我正在开发一个应用程序,用于管理我公司的大部分LOB(Line of Business)事务。我试图理解DDD...从客户管理开始。很多例子在领域模型方面非常简单,这对我没有什么帮助。 我的聚合根是一个客户类,其中包含一个地址簿、一组联系人和一组通信记录。 似乎这个聚合根会变得非常庞大,包...

7得票1回答
DDD中的聚合根和仓储

我刚开始接触DDD,遇到了“聚合根”这个术语。 我目前的理解是,它是一种包含对其他补充实体的引用的父实体。例如:聚合根将是员工,还包含职位、班次、性别和薪水等信息。 我首先想问的问题是:我的理解是否正确? 其次,我有一种印象,即存储库仅针对每个聚合进行定义。但是,我不明白如何检索有关其他...

7得票1回答
在领域驱动设计中,一个事务是否可以修改多个聚合?

在《领域驱动设计:软件核心复杂性应对》一书中,Evans定义了“聚合”为一组相关对象,我们将其视为一个单元来处理数据更改。显然,这意味着必须在单个事务中更新聚合。 然而,一个事务是否只能更新一个聚合?如果是这样的话,为什么? 我的研究是因为,在Vernon的《实现领域驱动设计》第360页中...

7得票3回答
DDD - 如何避免在此处跨越聚合边界?

我们正在开发一个新项目(重新编写现有应用程序),我在域模型/存储库设计方面遇到了问题。 以下是我们域模型中两个关键部分的(简化)版本: 如您所见,我有一个抽象概念的“帖子”,可以是评论、讨论、照片、视频等。帖子也可以有评论。 我还有一个抽象概念的“位置”,显然是街道、城市、社区等等。 ...

7得票1回答
DDD: 另一个聚合根访问了该聚合根

我目前正在开发一个DDD应用程序,对于需要从另一个聚合根访问聚合根的情况感到困惑。以下是我的边界上下文概述: 用户可以加入网站并创建他们感兴趣的主题帖子。他们还可以创建组,并发布特定于他们创建的组或所有网站成员可见的帖子。用户还可以上传照片以供其他人查看,或者上传Word文档和PDF文件以与...

7得票4回答
如何建模聚合根,以便在多个步骤中创建,就像向导一样

我将以Airbnb作为例子。 当您注册Airbnb账户时,您可以通过创建房源来成为房东。为了创建房源,Airbnb UI会通过多个步骤引导您完成新房源的创建过程: 它还会记住您最后一次停留的步骤,因此下次您要恢复该过程时,它会重定向到您离开的位置。 我一直在犹豫是否应将房源列为聚...

7得票4回答
当列表中存在不变量时,如何定义聚合根

我正在开发一款家庭托儿应用程序,希望尝试使用DDD / CQRS / ES进行开发,但在设计聚合时遇到了问题。该领域可以简单地描述为:一个孩子被注册,一个孩子可以到达,一个孩子可以离开。目标是跟踪访问时间、生成发票、添加注释(例如午餐内容、伤害等)以及在访问期间执行这些操作。这些其他动作将成为...

7得票1回答
在REST API(DDD)中聚合根的作用

我正在为一个在线拍卖服务创建一个新的REST /超媒体API。 我将这个项目作为理解领域驱动设计方法的练习,因为在很大程度上它似乎是一种不错的方法。 我的一些实体示例包括:Item,Listing,Bid,Purchase,BidHistory等。 我确定Listing实体为聚合根,通过它...

7得票2回答
在领域驱动设计中,深层次的聚合根是否适用?

我有一个系统,用户在表单中回答问题。我有代表这个模型的对象,但我不太确定如何按照DDD组织这些对象。 1. 表单(拥有自己的)部分列表; 2. 部分 - > (拥有自己的)组列表; 3. 组 - > (拥有自己的)问题列表; 4. 问题 - > (可以拥有自己的子问题)问题列表; 5. 问题...