3

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

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

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

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

4

1 回答 1

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