首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >什么是依赖注入上下文中的组合根?

什么是依赖注入上下文中的组合根?
EN

Stack Overflow用户
提问于 2011-06-08 19:06:35
回答 2查看 22.8K关注 0票数 82

我正在探索依赖注入,到处都在使用术语组合根。那么这是什么呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-08 19:10:01

合成根是应用程序中使用依赖注入容器进行应用程序对象图合成的单一位置(虽然这是如何完成的并不重要,但它可以使用容器,也可以使用pure DI手动完成)。

应该只有一个地方会发生这种情况,并且您的容器不应该在组合根之外使用。

引用以下链接的答案之一:

实际上,这意味着您应该在应用程序的根目录中配置容器。

桌面应用程序中的

  • ,它位于Main方法(或非常接近它)中,
  • 位于ASP.NET (包括MVC)应用程序中,它位于WCF中的Global.asax
  • 中,它位于ServiceHostFactory
  • etc.

有一个很好的答案here,它解释了更多关于这方面的内容。

另请参见this answer

票数 79
EN

Stack Overflow用户

发布于 2017-12-23 21:30:13

Mark Seemann写了一篇关于Composition设计模式的优秀文章。

本文的要点是:

合成根是应用程序中模块组合在一起的唯一位置(最好是)。

只有应用程序才应该有合成根。库和框架不应该这样做。

DI容器只能从组合根引用。所有其他模块都不应该引用容器。

http://blog.ploeh.dk/2011/07/28/CompositionRoot/

考虑到这些原则,我编写了自己的JavaScript依赖注入框架,称为Di-Ninja

https://github.com/di-ninja/di-ninja

据我所知,是javascript中唯一实现了Composition Root设计模式的,它的文档可能是另一个很好的例子来演示它是如何工作的。

它可以与NodeJS、浏览器(使用Webpack或UMD/AMD)和原生反应一起使用。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6277771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档