IOC控制反转和DI依赖注入区别

来源:互联网 发布:姚明每个赛季数据 编辑:程序博客网 时间:2024/05/19 15:40

简单点明:

IOC控制反转:说的是创建对象实例的控制权从代码控制剥离到IOC容器控制,实际就是你在xml文件控制,侧重于原理。

DI依赖注入:说的是创建对象实例时,为这个对象注入属性值或其它对象实例,侧重于实现。

它们是spring核心思想的不同方面的描述。

~~~~~~~~~~~~~~~~~~

依赖注入和控制反转是对同一件事情的不同描述,从某个方面讲,就是它们描述的角度不同

依赖注入是从应用程序的角度在描述。描述完整点:应用程序依赖容器创建并注入它所需要的外部资源;

控制反转是从容器的角度在描述。描述完整点:容器控制应用程序,由容器反向的向应用程序注入应用程序所需要的外部资源。

~~~~~~~~~~~~~~~~~~

同一件事,强调的内容不同而已。IoC控制反转,强调容器的作用,用于组织或控制容器内bean的运行。DI依赖注入,强调Bean需要外部注入才能正常运转。相对地说做容器框架的(比如Spring)当然强调控制了,怎么更好的控制别的Bean的运行,相反做模块的,当然强调注入了,我到底需要依赖注入什么。
~~~~~~~~~~~~~~~~~

di只是ioc的一种实现形式,ioc还可以用工厂模式,服务定位器模式实现