【发布时间】:2012-02-24 01:37:39
【问题描述】:
各位, 抱歉,如果这已在另一个线程中涉及,但我搜索了 ddd 和 mvc 文章并没有找到一个简单的答案。
我希望将 DDD 方法应用于我的 MVC 项目的架构。请纠正我的错误。
所有涉及命中域模型的 MVC 控制器操作最初都会命中 和应用服务层。 此处的应用程序服务层充当表示和域之间的门面。 稍后来自应用程序服务的任何明显涉及离散域聚合的请求都将使用存储库对聚合根执行获取或修改操作。每个聚合根都有自己的存储库。
因此应用服务层必须注入域所需的任何/所有存储库。
如果一项操作可能涉及多个聚合或需要的逻辑不能完全适合一个聚合,则应用程序服务将调用域服务来跨聚合执行操作。
这对我来说似乎不对。 我的困惑是,从 DDD 的角度来看,我不确定例如聚合根是否应该执行自己的持久性,即聚合被注入存储库,然后自身持久化/获取,或者应用程序服务层是否使用存储库来操作或获取聚合?
另外如果应用服务层注入了所有的repositories,那么应用服务层调用的领域服务是否也需要注入repositories?
目前我将 CQRS 排除在外。我想首先理清服务和聚合之间的分层和关系。
感谢您的建议。
【问题讨论】:
标签: model-view-controller domain-driven-design aggregate