【问题标题】:Where to place Entity Classes and utility classes in DDD在 DDD 中放置实体类和实用程序类的位置
【发布时间】:2012-12-23 10:33:12
【问题描述】:

我是 DDD 的新手,想澄清一些疑问。任何帮助表示赞赏。

  1. 在 DDD 模型中,程序集引用层次结构自上而下,这意味着模型可以引用基础结构,而不应该反过来。现在,如果我们在模型组件中声明所有类,那么在这种情况下,基础设施类将必须引用模型组件来获取数据访问层 (DAL) 中具体存储库实现的类信息。此外,模型组件必须引用基础设施组件才能访问 DAL 层。我对此感到困惑!正确的方法应该是什么?

  2. 我们是否应该在模型层或基础结构 DAL 层中具有 Repository 和 UnitOfWork 接口,就像在模型层中具有接口但在基础结构层中具有实际 DAL 实现一样?

  3. 如果我们需要其他包含一些通用实用程序函数或类的程序集(如自定义 CommandMessage 类等在企业服务总线架构中进行通信),我们将所有这些东西放在哪里以及应该是首选命名空间(对于例如CompanyName.Model.Common)?

【问题讨论】:

    标签: domain-driven-design


    【解决方案1】:
    1. 模型组件不应引用基础结构组件。反之亦然。模型组件只是声明了所需的接口。您应该从 Infrastructure Assembly 引用您的模型程序集。并实现这些接口。模型需要的接口实现可能有许多不同的程序集。稍后您通过依赖注入提供接口实现。
    2. 如上所述,存储库和工作单元应在模型程序集中声明。
    3. 在企业服务总线架构中进行通信在我看来就像基础设施任务。我认为这不是模型的一部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-05
      • 1970-01-01
      • 2011-01-20
      • 2010-11-23
      • 2017-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多