DDD中的UI层依赖

本文关键字:依赖 UI 中的 DDD | 更新日期: 2023-09-27 18:14:37

我目前的项目是这样组织的:

  • 域层->域对象和存储库接口
  • 基础设施->存储库实现
  • 应用层-> MVVM模式下的服务
  • 表示->只访问服务层并使用ViewModels

我使用IoC容器(SimpleInjector)。My Services在构造函数中接收一个IRepository,如:

public CustomerService : ServiceBase
{
   public CustomerService(ICustomerRepository repository, IUnitOfWork<CustomerContext> uow)
   {
     ...
   }
}

我的问题是

要在服务中注入存储库,我的表示层应该引用域层。添加这个参考可以吗?我的表示层不应该只引用基础结构层和应用层吗?

DDD中的UI层依赖

可以。

您需要一个对来自组合根(通常位于表示层)的所有组件的引用。

我知道一开始感觉有点奇怪,但是你需要区分dll依赖和硬类依赖。如果您的表示层依赖于DLL,这是可以的,当视图依赖于sql存储库(例如)时,这是不可以的。

我已经写了一篇关于这个的博客文章和一些更多的信息:

http://www.kenneth-truyers.net/2013/05/12/the-n-layer-myth-and-basic-dependency-injection/