【发布时间】:2009-06-03 17:41:49
【问题描述】:
什么是 IoC 容器?
什么是 IoC/DI 框架?
为什么我们需要 IoC/DI 框架?
IoC/DI 和 AOP 之间有什么关系吗?
关于 IoC 和 AOP,Spring.net/ninject 是什么?
【问题讨论】:
标签: dependency-injection inversion-of-control ninject spring.net
什么是 IoC 容器?
什么是 IoC/DI 框架?
为什么我们需要 IoC/DI 框架?
IoC/DI 和 AOP 之间有什么关系吗?
关于 IoC 和 AOP,Spring.net/ninject 是什么?
【问题讨论】:
标签: dependency-injection inversion-of-control ninject spring.net
JMSA,
James Kovacs 写了一篇精彩的文章,涵盖了您的许多问题,我建议您阅读它Here
Spring.Net、Ninject、Unity、Castle Windsor、Autofac 都是 IOC 容器,可通过不同方式进行配置,其中许多还支持 AOP。
IOC/DI 框架很有用,因为它们提供了标准机制,例如,如果您正在雇用新开发人员,这更容易说,我们使用此框架并将链接传递给他们到教程/帮助指南。同时,这些框架经过大型社区/公司的试用和测试。
如果您在阅读本文和上述答案后仍有任何问题没有得到解答,请告诉我,我会尽我所能提供进一步的帮助。
【讨论】:
从语义的角度...
依赖注入本身意味着一个依赖,即构造/使用(应用程序的“核心问题”)必需的东西。例如,汽车不是没有引擎的汽车。
方面被描述为与应用程序的核心关注点相交叉。这意味着与核心关注点分开且不重要(您可以将它们视为“不错的选择”)。既然应用程序可以在没有方面的情况下运行,那么它们真的是依赖关系吗?例如,即使没有防盗锁,汽车仍然是汽车。
(当然,这是从理论的角度来看。在现实世界中,像安全这样的问题对于有销路的产品的存在通常与核心自身所关心的一样重要。)
因此,虽然在实践中 DI 可用于实现方面,但我不会将该过程称为真正的 DI。这来自专门使用构造函数注入的人。
【讨论】: