DDD-具有大型图形的聚集

本文关键字:聚集 图形 大型 DDD- | 更新日期: 2023-09-27 18:29:16

我在一个基于DDD的应用程序体系结构中工作。我有以下场景。

我从另一个系统从BizTalk发票导入。这提供了一个我在应用程序内部反映的结构,如下图所示:

  • 订单->发票标题->发票标题详细信息->发票详细信息

经过繁重的后台计费过程,图形会增长并创建如下结构(现在它是最终模型):

  • BillingDoc->Billing Items->Order(Per Billing Item)->InvoiceHeader->Invoice页眉Detail->Invoice Details

最后,我需要在网格中使用这些BillingDocs,并通过迭代大量BillingDoc及其图形来了解BillingDoc是否有InvoiceHeader和从外部系统导入的详细信息,这让我很担心

考虑到我将迭代每个文档和大型图,我如何在不影响性能的情况下将这些操作作为域模型的一部分来执行。

我所做的是标记聚合根,如果在创建文档时它有InvoiceHeader。因此,当我需要迭代时,我会避免遍历大型图。

你对我如何改进流程并保持我的域名正确性有什么建议吗?你觉得我的解决方案怎么样?它违反ddd吗?

非常感谢。

DDD-具有大型图形的聚集

如果你真的遵循DDD,我认为你需要清楚地区分你的presentationObjects和DomainObjects。如果你正在考虑向UI公开Domain对象,那么我认为,会出现这样的问题,从性能等方面来看,这真的很困难。