0
我試圖掌握越來越多的域驅動設計並遵循最佳實踐。到目前爲止,這是我的理解:域驅動設計相關聚合根和UI檢索
- 聚合是相互關聯的實體的集合。
- 聚合的根源是將聚合的關係綁定在一起的實體。
- 如果根被刪除聚集的範圍內的所有內容必須刪除以及
- 總根只能通過身份
我的問題相互引用是:
如果我有更多的而不是一個相互關聯的聚合,比如訂單和產品類別。
應用程序服務應該如何處理訂單和相關產品類別的檢索?
服務是否應該引用訂單和產品類別的每個存儲庫,首先檢索訂單,然後檢索產品類別,最後填寫引用這兩個信息的數據傳輸對象?
事情是這樣的:
public OrderDto GetOrder(int id)
{
var order = _orderRepo.GetById(id);
var productCategory = _categoryRepo.GetById(order.ProductCategoryId);
return new OrderDto
{
CustomerName = order.CustomerName,
ProductCategoryName = productCategory.Name,
*..etc..*
};
}
或者是超必殺保持這一脫鉤,如果他們是緊密相關的根源是什麼?
或者UI應該對獨立服務進行調用以獲取完整圖片嗎?
非常感謝...我認爲他在「違反規則的原因部分」中提出了非常好的觀點。我個人認爲,只有在對規則有完整的理解之後,規則纔會被打破。我仍然在學習:) – Chris
我認爲這個規則的目的是防止在一個事務中自然地修改兩個Aggregate,實際上,如果你的團隊使用Aggregate reference但是遵循不修改團隊中的多個Aggregate的規則學科。 – Hippoom