大型项目中的最佳IoC实践

Jam*_*s L 7 dependency-injection inversion-of-control

您发现哪些技术对于使用Inversion of Control容器管理大型项目的依赖性很有用?

你是在一个地方引导所有东西,还是将它拆分?

你有没有使用过多个容器?

Mar*_*ann 8

从架构的角度来看,重要的是要保持对构图根位置的敏锐关注.它应该尽可能接近应用程序的入口点,并且您应该在一个地方组合整个依赖图.

否则可能会造成关于责任的混淆,并且您还有可能引入各种微妙的错误,因为在一个地方解决的IFoo实例可能与在另一个地方解析的IFoo实例相同或不同.

如果应用程序如此之大以至于一次性解析整个依赖关系图只是非常昂贵,那么您可以通过在战略位置(围绕聚合服务)使用延迟加载生存期来解决这个问题.

从概念上讲,我总是只有一个容器.(我偶尔会有多个父/子容器来打破一些循环依赖,但这是一个实现细节.)