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