領域驅動設計之聚合與聚合根實例二


這個實例主要說明一個論壇發帖與回復的場景。

一般大家的理解是回復必須依賴與帖子,並且回復是沒有單獨存在的必要,並且帖子與回復通常具有一些不變性約束規則,比如發布一個回復,在帖子中同時增加一次回復次數;回復過的帖子就不再允許刪除等,所以一般理解是帖子與回復屬於一個聚合,帖子是聚合根,回復是聚合中的一個實體。如下:

雖然滿足了聚合與聚合根的划分的基本要求,但是還應該從兩個方面來考慮:

1.性能:如果帖子與回復同屬一個聚合,如果要對一個帖子添加回復,必須從聚合根帖子進行操作,並且同時保存整個聚合。如果一個帖子被多個人回復,那就存在並發的問題,性能會比較差。

2.場景:發布帖子與發布回復應該是兩個獨立的場景,也就是發布一個帖子后可以沒有回復,回復可以是后期任意時刻的一個操作。

鑒於此,建議的聚合與聚合根的划分如下:

為了保證規則的一致性,可以通過領域服務或應用層服務協調來保證。

 

歡迎加入QQ討論群:309287205


免責聲明!

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



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