什么时候使用IoC合适?

Rya*_*ela 6 inversion-of-control

我理解IoC容器是什么,并且已经在Structure Map上阅读了.该技术似乎很容易使用.我的问题是,使用IoC容器的适当粒度级别是多少?

我看到IoC的以下可能的应用程序级别:

  1. 打破所有对象之间的所有依赖 - 当然是矫枉过正.
  2. 打破所有主要对象(如域对象,支持类和子系统中的组件)之间的依赖关系.
  3. 将IoC与Facade结合使用,可以使用公共接口包装子系统(例如日志记录),然后打破对该接口的依赖关系.

我知道这个问题的答案是"它取决于",但根据你的经验,那么答案取决于什么?项目规模是一个因素吗?

此外,IoC在哪里使用不合理?

Mik*_*nty 1

这个想法不是要打破域对象之间的依赖关系,而是要保护您的域免受外界影响。您的域对象应该与您正在解决的任何业务问题有关,而不是与数据库、日志记录、缓存、http 上下文、休息服务等有关...

本文讨论将职责从对象移到 IoC 容器中。

http://www.agileatwork.com/captcha-and-inversion-of-control/