我是 DDD 的新手,想澄清一些疑问。任何帮助表示赞赏。
在 DDD 模型中,程序集引用层次结构自上而下,这意味着模型可以引用基础设施,而不应该反过来。现在,如果我们在模型组件中声明所有类,那么在这种情况下,基础设施类将不得不引用模型组件来获取数据访问层 (DAL) 中具体存储库实现的类信息。此外,模型组件必须引用基础设施组件才能访问 DAL 层。我对此感到困惑!正确的方法应该是什么?
我们是否应该在模型层或基础设施 DAL 层中拥有 Repository 和 UnitOfWork 接口,就像在模型层中拥有接口但在基础设施层中拥有实际的 DAL 实现一样?
如果我们需要其他包含一些通用实用程序函数或类的程序集(如自定义 CommandMessage 类等在企业服务总线架构中进行通信),我们将所有这些东西放在哪里,应该是什么首选命名空间(例如
CompanyName.Model.Common
)?