DDD必知必会格物系列->聚合根

知识点储备

有些知识点虽然是可选项,
但是如果没有这些知识储备的话,
下面的阅读可能会略有困难(具体情况因人而异)

基础知识点(必选)


[
"聚合",
"实体",
"值对象"
]

关联知识点(可选)


[
"核心领域",
""
]

其他名称

聚合根也称为根实体

概览

Aggregate(聚合)是一组相关对象的集合,作为一个整体被外界访问,
聚合根(Aggregate Root)是这个聚合的根节点。

聚合根(Aggregate Root)是DDD中的一个概念,是一种更大范围的封装,会把一组有相同生命周期、在业务上不可分割的实体和值对象放在一起,只有根实体可以对外暴露引用,这也是一种内聚性的表现。

DDD圈真乱

聚合根不仅是实体,还是聚合的管理者。
若把聚合比作组织,那聚合根就是该组织负责人。

聚合根的特点

规则

确定聚合边界要满足固定规则(Invariant),是指在数据变化时必须保持的一致性规则,具体规则如下。

● 根实体具有全局标识,最终负责检查规定规则。
● 聚合内的实体具有本地标识,这些标识在Aggregate内部才是唯一的。
● 外部对象不能引用除根Entity之外的任何内部对象。
● 只有Aggregate的根Entity才能直接通过数据库查询获取,其他对象必须通过遍历关联来发现。
● Aggegate内部的对象可以保持对其他Aggregate根的引用。
● Aggregate边界内的任何对象在修改时,整个Aggregate的所有固定规则都必须满足。

举个栗子

仍以银行转账的例子来说明,如图5所示,账号(Account)是客户信息(CustomerInfo)Entity和值对象(Address)的聚合根,交易(Tansaction)是流水(Journal)的聚合根,流水是因为交易才产生的,具有相同的生命周期。

图5↓

限界上下文 <1>-- 聚合 <1>-- 实体

而聚合根就是一个实体,

摘抄文档

作者:人民邮电出版社
链接:https://www.zhihu.com/question/25089273/answer/969378280
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

posted @   zh89233  阅读(1555)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2015-05-22 同源策略
点击右上角即可分享
微信分享提示