這篇博客是DDD:用 “四色原型” 進行 “聚合設計”的延伸版。
職責分配
聚合
維護內部狀態的一致性。換句話說,聚合的職責只限於維護期自身的狀態。可以將聚合的職責分為兩類:
- 修改職責:只能修改聚合本身的狀態,關聯的其它聚合信息不能修改。
- 讀取職責:可以讀取聚合本身的狀態,關聯的其它聚合信息也能讀取。
角色
維護一個聚合實例業務邏輯的一致性。因為有些聚合實例的業務邏輯會依賴很多外部服務:如倉儲、領域服務等。常見的場景如下:
- 前置條件:修改內部狀態時,必須滿足的條件。
- 唯一性驗證:某些狀態必須唯一。
- 計算邏輯:此處多數采用狀態模式或策略模式。
領域服務
維護多個聚合實例(跨聚合)業務邏輯的一致性。
工廠
維護聚合的創建邏輯。
倉儲
維護聚合的持久化邏輯。
引入工作單元后的聚合生命周期
代碼示例
分析模型
設計模型
項目結構
代碼下載
感謝360雲盤提供的空間:http://yunpan.cn/QWqewDLDKY4vk