领域驱动设计中依赖注入的最佳位置
Posted
技术标签:
【中文标题】领域驱动设计中依赖注入的最佳位置【英文标题】:Best place for Dependency Injection In Domain Driven Design 【发布时间】:2018-06-19 06:46:12 【问题描述】:在 DDD 的上下文中,我理解应用程序服务编排域服务和存储库(应用程序工作流),现在我的问题是哪个层负责注入依赖项,依赖项注入必须在 UI 中完成(使用应用程序的层服务)或在应用程序服务中。例如,在具体的存储库注入的情况下,应该由哪一层来做呢?
另一个问题是,我可以将应用服务代码直接放在 Web 服务中,并将该 Web 服务用作应用服务层吗?
最好的问候
【问题讨论】:
【参考方案1】:... 是依赖注入必须在 UI(使用应用程序服务的层)或 Application Service 中完成。例如,在具体的存储库注入的情况下,应该由哪一层来做呢?
依赖注入容器应该尽可能高的使用。一般来说,这意味着在应用程序的引导程序中,甚至在 UI 之前。
例如,在具体的存储库注入的情况下,应该由哪一层来做呢?
第一次调用的层,整个应用程序的入口点,在Composition root中。
另一个问题是,我可以将应用服务代码直接放在 Web 服务中,并将该 Web 服务用作应用服务层吗?
这在很大程度上取决于您的架构以及对您而言什么是“Web 服务”。如果您指的是分层架构:如果它类似于 REST 控制器,则否,在这种情况下,“Web 服务”在表示层中,而应用程序服务在应用程序层中。应用层包含所有用例,每个应用服务都是一个用例。阅读更多here。
【讨论】:
以上是关于领域驱动设计中依赖注入的最佳位置的主要内容,如果未能解决你的问题,请参考以下文章