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
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM