知識點儲備
有些知識點雖然是可選項,
但是如果沒有這些知識儲備的話,
下面的閱讀可能會略有困難(具體情況因人而異)
基礎知識點(必選)
[
"聚合",
"實體",
"值對象"
]
關聯知識點(可選)
[
"核心領域",
""
]
其他名稱
聚合根也稱為根實體
概覽
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
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。