DDD - 聚合大图

时间:2014-11-06 05:12:35

标签: c# domain-driven-design n-tier-architecture

我正在使用基于DDD的应用程序架构。我有以下情况。

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

  • 订单 - > InvoiceHeader - > InvoiceHeaderDetails - > InvoiceDetails

进行繁重的背景计费流程图表会增长并创建如下结构(现在它是最终模型):

  • BillingDoc - >结算项目 - >订单(每个开票项目) - > InvoiceHeader - > InvoiceHeaderDetail - > InvoiceDetails

最后我需要在网格中使用那些BillingDocs,并通过迭代大量的billingdocs及其图表让我担心,实现BillingDoc是否有InvoiceHeader和从外部系统导入的详细信息。

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

我所做的是在创建具有InvoiceHeader的文档时标记聚合根。因此,当我需要迭代时,我避免挖掘大图。

您对我如何改进该流程并保持我的域名有任何建议吗?您对我的解决方案有何看法?它违反了ddd吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

如果你真的关注DDD,我认为你需要清楚地区分你的presentationObjects和Domain Objects。如果您正在考虑将UI对象暴露给UI,那么我认为,这样的问题会出现,并且从性能等方面来看真的很难。