您发现哪些技术对于使用控制反转容器管理大型项目的依赖项很有用?
你是把所有东西都放在一个地方,还是把它分开?
你曾经使用过多个容器吗?
最佳答案
从架构的角度来看,重要的是要保持对您Composition Root 的位置的敏锐关注。是。它应该尽可能靠近应用程序的入口点,您应该在一个地方组成整个依赖图。
否则可能会造成对职责的混淆,并且您也有引入各种微妙错误的风险,因为在一个地方解析的 IFoo 实例可能与在另一个地方解析的 IFoo 实例相同,也可能不同。
如果应用程序太大以至于一次性解析整个依赖图的成本高得令人望而却步,您可以使用 lazy loading lifetimes 来解决这个问题。在战略要地(大约 Aggregate Services)。
从概念上讲,我总是只有 单个容器 . (我偶尔会使用多个父/子容器来打破一些循环依赖,但这是一个实现细节。)
关于dependency-injection - 大型项目中的最佳 IoC 实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2461201/