控制反转<依赖注入

Joh*_*ren 20 dependency-injection terminology inversion-of-control

我感觉不存在控制倒置这样的事情,或者说正确的术语是依赖注入.我错了这个假设吗?

我一直试图为自己定义IoC.在这样做的过程中,我学到了很多关于IoC容器和依赖注入的知识.

刚才,我从Martin Fowler的网站上看到了这个:

结果我认为我们需要一个更具体的名称来模式.控制反转过于笼统,因此人们会发现它令人困惑.结果与各种IoC倡导者进行了大量讨论,我们选择了Dependency Injection这个名称.

在现代IoC世界中,依赖注入只是实现IoC的一种方式吗?

Mar*_*ann 41

如果您接受Fowler的定义,那么控制反转是一个比DI 更宽泛的术语,涵盖了插入框架的所有框架用法,但框架仍处于控制之中.

例如,在.NET中,ASP.NET或Windows Presentation Foundation等框架最终处于控制之中,但提供了可用于构建应用程序的各种事件接缝.在其他平台上也是如此.

依赖注入是IoC的一个专门化,它专门用于管理依赖关系.


Krz*_*mic 6

这是我和马克不同意的几点之一.通过我的书,控制反转 原理一样的在这里,所以我不会老调重弹了.

依赖注入只是外在的行为创造的组件依赖于外部世界.

管理这些依赖关系(以及许多其他东西)是Inversion of Control Containers所做的,并且使用DI作为其中的一部分,仅仅是一个实现细节.