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)
{
...
}
}
我的问题是
要在服务中注入存储库,我的表示层应该引用域层。添加这个参考可以吗?我的表示层不应该只引用基础结构层和应用层吗?
可以。
您需要一个对来自组合根(通常位于表示层)的所有组件的引用。
我知道一开始感觉有点奇怪,但是你需要区分dll依赖和硬类依赖。如果您的表示层依赖于DLL,这是可以的,当视图依赖于sql存储库(例如)时,这是不可以的。
我已经写了一篇关于这个的博客文章和一些更多的信息:
http://www.kenneth-truyers.net/2013/05/12/the-n-layer-myth-and-basic-dependency-injection/