【问题标题】:DDD data layer and presentation layerDDD 数据层和表示层
【发布时间】:2021-03-24 11:54:12
【问题描述】:

您好,我有一个关于 ddd 层的问题: 我基本上在以下位置构建了我的文件夹:

├───presentations
│     ├───controllers
│     ├───helpers
│     ├───protocols
├───modules
│   ├───domain   #interfaces of implemented command handler
│     ├───commands            #Commands interfaces & abstract implementations
│     ├───errors              #Errors & Error Types
│     ├───events              #Events interfaces & abstract implementations
│     ├───services            #services interfaces & abstract implementations
│   ├───infrastructure
│     ├───persistence #repositories implementations

但我对应该在哪一层创建我的用例、命令处理程序、命令实现、事件实现存在疑问。 我的问题是我是否应该在我的模块 / ** / 基础设施文件夹中创建 或者我是否应该创建一个文件夹,如:

├───DATA or APPLICATION
│    ├───dtos            #Commands interfaces & abstract implementations
│    ├───commands            #Commands interfaces & abstract implementations
│    ├───events              #Events interfaces & abstract implementations
│    ├───useCases            #services interfaces & abstract implementations

另一个问题:我的表示层,控制器应该在那个层上吗?

【问题讨论】:

    标签: domain-driven-design


    【解决方案1】:

    您可以在 ./modules/application 中创建一个文件夹并将您的用例放在那里。 关于放置命令处理程序、命令实现或事件实现的位置应该在infrastructure 文件夹中。因为他们可能会依赖一些基础设施,比如rabbitmq,或者spring boot(如果你使用java),或者amazon SQS等。 是的,您的控制器文件夹应该在演示文稿内,如果您有任何由外部触发的 CLI 或事件控制器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-14
      • 2015-07-17
      • 2014-04-23
      • 1970-01-01
      • 1970-01-01
      • 2010-11-03
      • 2011-05-15
      • 2011-04-19
      相关资源
      最近更新 更多