module - DDD : Where to Place Domain Events

标签 module domain-driven-design domain-events

我刚刚读了 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/

相关文章:

asp.net-mvc - Orchard 自定义模块不保存所有项目

module - 无模板的组件

java - 领域驱动设计依赖于静态方法?

json - SQL 中的领域事件存储...使用 JSON 序列化?

php - PHP 中的 DDD -> 投影仪 -> 投影仪的注册方法应该在何时何地调用?

asp.net-mvc - 将 Ninject 与 Udi Dahan 的领域事件结合使用

angular - 为什么 Angular 2 将模块命名为 NgModule 而不仅仅是 Module

module - Silverstripe 评论模块无法正常工作

.net - 存储库模式中的事务

asp.net-mvc-3 - ViewModel 的注意事项