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>--
而聚合根就是一个实体,
摘抄文档
作者:人民邮电出版社
链接:https://www.zhihu.com/question/25089273/answer/969378280
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2015-05-22 同源策略