我刚刚读了 Vernon 的书《实现领域驱动设计》。我找不到在哪里放置领域事件的类。
- 与您的聚合位于同一命名空间中?
- 在像
<aggregate-namespace>.Events
这样的子模块中? - 或者混合:相同的命名空间,但物理
Events
子目录
这不是一个大问题,但很高兴知道你们中的一些人做了什么以及结果如何。
提前致谢!
最佳答案
我的理解是,域事件应该位于域层(如果您使用.NET,那么域项目/程序集)。
域层中的位置取决于您构建项目的方式。有些进行技术分组,有些进行聚合分组)。
示例(技术分组):
Domain
📂 Events
📄 InvoiceCreated
📂 Models
📄 InvoiceModel
📄 OrderAggregate
示例(按聚合进行逻辑分组):
Domain
📂 OrderAggregate
📄 OrderAggregate
📄 InvoiceCreated
📄 InvoiceModel
然后在应用程序层中放置域事件处理程序。
Application
📂 Controllers
📂 EventHandlers
📄 InvoiceCreatedHandler
📂 Models
📂 Views
关于module - DDD : Where to Place Domain Events,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16540064/