|
|
1
260
在存储库模式的上下文中,聚合根是客户机代码从存储库加载的唯一对象。 存储库封装了对子对象的访问——从调用者的角度来看,它会自动加载子对象,无论是在加载根对象的同时,还是在实际需要时(就像延迟加载一样)。
例如,您可能有
|
|
|
2
173
从伊万斯DDD:
还有:
这意味着聚合根是唯一可以从存储库加载的对象。
示例是包含
|
|
|
3
72
聚合根是简单思想的复杂名称。
总体思路
设计良好的类图封装了它的内部。访问此结构的点称为
|
|
|
4
31
假设你有一个计算机实体,这个实体也不能没有它的软件实体和硬件实体。这些形成
聚合根是聚合中的母舰实体(在我们的例子中
将聚合根视为聚合的入口点。 C代码:
请记住,硬件也可能是ValueObject(本身不具有标识),请仅将其作为示例。 |
|
5
11
如果您遵循数据库优先的方法,那么聚合根通常是一个多关系的1侧的表。 最常见的例子是一个人。每个人都有多个地址、一个或多个工资单、发票、CRM条目等。情况并非总是如此,而是9/10倍。 我们目前正在开发一个电子商务平台,基本上我们有两个共同的根源:
客户提供联系信息,我们为他们分配交易,交易获取行项目等。 卖家销售产品,有联系人,关于我们的页面,特别优惠等。 这些由客户和卖方存储库分别处理。 |
|
|
6
8
|
|
|
7
7
|
|
|
8
3
骨料
意思是收集某物。
|
|
|
9
0
在Erlang中,一旦聚合由状态内部的数据结构组成,而不是由OO组成,就不需要区分聚合。参见一个例子: https://github.com/bryanhunter/cqrs-with-erlang/tree/ndc-london |
|
|
10
0
聚合是通过限制其访问思想聚合根来保护不变量和强制一致性的地方。不要忘记,聚合应该根据您的项目业务规则和不变量进行设计,而不是数据库关系。不应插入任何存储库,不允许进行任何查询。 |