我目前在一个 Visual Studio 解决方案中有两个项目。每个项目代表不同的聚合。我需要添加一个与两个聚合根交互的域服务。我应该将它添加到哪个项目?有关系吗?
问问题
49 次
2 回答
2
如果您的聚合根都属于同一个有界上下文,那么您的聚合根可能应该在同一个项目中;否则域服务可能在另一个引用两个聚合根项目的项目中,但这很快就会变得笨拙。每个有界上下文的域项目就足够了。
但是,如果两个聚合根位于单独的有界上下文中,那么“最简单的”将是使用某种形式的消息传递,并让编排层中的流程管理器处理各种有界上下文端点之间的交互。为此,我通常有 BC 特定编排端点和 BC 特定“功能”端点,其中功能端点处理 BC 特定功能。然而,一个 BC 特定的编排端点包含 BC 特定的流程管理器,但通常与来自它需要实现服务的任何 BC 的其他功能端点交互。
于 2020-03-16T08:09:19.267 回答
1
想象一下,您正在构建一个电子商务应用程序。在您创建产品的情况下,数据应由属于其有界上下文(运输、发票)(如鬣狗)的 ui 微控制器分解,并将他们感兴趣的信息发送到有界上下文数据存储,以便将来实现其功能。作为一个运输隔离模块,为了计算运输成本,我需要产品重量,因此当用户在 UI 上输入该数据时,我应该删除该信息。
于 2020-03-17T08:01:52.970 回答