傻瓜的控制反转(IoC /依赖注入)

Lui*_*lar 5 c# dependency-injection inversion-of-control

可能重复:
什么是控制反转?

好的,我是这个网站的新手,我已经看到人们真的愿意提供帮助,所以imma会利用这一点,如果你不介意的话就问另一个问题.

所以,我发誓很多,我发誓,但是,我似乎无法弄明白.世界上有什么反转控制(IoC或依赖注入)?为什么ASP.NET MVC + Repository Pattern项目使用它如此之多?最后,"容器"是什么意思,当他们说"注入我的控制器"时?

我知道这可能是一个古老的话题(甚至是一个愚蠢的问题),但我似乎无法获得任何傻瓜的答案.

duf*_*ymo 5

将依赖注入/控制反转视为一个大型对象工厂,一个声明性的,配置驱动的虚拟构造函数.通过调用"new"来乱码您的客户端类使用的具体类型,而不是乱丢您的代码,现在您将拥有该虚拟构造函数为您实例化对象.

所有这些复杂性给你带来的好处是什么?

对象创建现在是一个声明性的东西.如果您碰巧将设计基于适当的接口,则可以要求对象工厂创建一个代理,以便在方便时实现相同的接口.现在可以使用各种好东西:面向方面的编程,透明的远程处理,声明式事务等.

  • 谢谢,我期待着学习这种模式。看起来很有用。 (2认同)