3

我刚刚阅读了 Vernon 的书“实现领域驱动设计”。我找不到的是把你的领域事件的类放在哪里

  • 在与您的聚合相同的命名空间中?
  • 在像<aggregate-namespace>.Events?
  • 或 hybird:相同的命名空间但物理Events子目录

这不是一个大问题,但很高兴知道你们中的一些人做了什么以及结果如何。

提前致谢!

4

2 回答 2

2

我的理解是域事件应该在域层(如果你使用.NET,那么域项目/程序集)。

领域层的位置取决于您如何构建项目。有些做技术分组,有些做聚合分组)。

示例(技术分组):

Domain
 Events
    InvoiceCreated
 Models
    InvoiceModel
 OrderAggregate

示例(按聚合进行逻辑分组):

Domain
 OrderAggregate
    OrderAggregate
    InvoiceCreated
    InvoiceModel

然后在应用层中放置域事件处理程序。

Application
 Controllers
 EventHandlers
    InvoiceCreatedHandler
 Models
 Views
于 2019-11-11T14:27:25.633 回答
1

对于我的服务总线消息,我有一个单独的程序集(在 C# 世界中)沿着MainNamespace.Messages. 任何需要通过网络的域事件也将在该程序集中。

但是,如果您打算将域事件映射到服务总线事件,则域事件可能位于域程序集中。

于 2013-05-14T11:22:32.977 回答