玩转Spring MVC (一)---控制反转(依赖注入)
2015-02-02 23:11
246 查看
Spring的核心是控制反转,什么是控制反转呢?小编浅述一下自己的拙见,有不当之处还希望大家指出。
控制反转(IOC),也可以叫做依赖注入(DI),这两个词其实是一个概念。
控制反转,那是什么控制被反转了呢?Martin Fowler总结出是“依赖对象的获得”被反转了。
什么是“依赖对象”呢?大多数情况下,java中的都需要通过多个类的合作实现某种业务逻辑,每个对象都需要与他合作的对象的引用,这个与他合作的对象就是它的“依赖对象”。
如果我们要引用其他的对象,首先就得实例化对象,也就是说要new一个对象,那么,这两个类的代码之间必然就存在耦合。尽管使用工厂模式等方法可以缓解这种问题,但无法从根本上解决代码间的耦合问题。而IOC恰恰就是为了解决这种问题而被创造的,它把耦合从代码中移出去,放到统一的XML 文件中,通过一个容器在需要的时候把这个依赖关系形成,即把需要的接口实现注入到需要它的类中,这可能就是“依赖注入”说法的来源了。
所以,简单来说,控制反转就是“当你需要引用一个对象时,将本来应该由你控制的实例化对象的操作交给配置好的xml来进行,然后再给你注入进去,从而降低代码间的耦合度”。
控制反转(IOC),也可以叫做依赖注入(DI),这两个词其实是一个概念。
控制反转,那是什么控制被反转了呢?Martin Fowler总结出是“依赖对象的获得”被反转了。
什么是“依赖对象”呢?大多数情况下,java中的都需要通过多个类的合作实现某种业务逻辑,每个对象都需要与他合作的对象的引用,这个与他合作的对象就是它的“依赖对象”。
如果我们要引用其他的对象,首先就得实例化对象,也就是说要new一个对象,那么,这两个类的代码之间必然就存在耦合。尽管使用工厂模式等方法可以缓解这种问题,但无法从根本上解决代码间的耦合问题。而IOC恰恰就是为了解决这种问题而被创造的,它把耦合从代码中移出去,放到统一的XML 文件中,通过一个容器在需要的时候把这个依赖关系形成,即把需要的接口实现注入到需要它的类中,这可能就是“依赖注入”说法的来源了。
所以,简单来说,控制反转就是“当你需要引用一个对象时,将本来应该由你控制的实例化对象的操作交给配置好的xml来进行,然后再给你注入进去,从而降低代码间的耦合度”。
相关文章推荐
- 玩转Spring MVC (一)---控制反转(依赖注入)
- IOC(控制反转)和DI(依赖注入)的精彩讲解
- (转)关于spring的两个概念:IoC(控制反转) ,DI(依赖注入)
- 什么是依赖注入(IoC)、控制反转(DI) (二)
- Spring的IoC(控制反转) 、DI(依赖注入)
- 话说 依赖注入(DI) or 控制反转(IoC)
- 演进式例解控制反转(IoC)、依赖注入(DI)之一
- PHP 控制反转和依赖注入(IoC/DI)
- 依赖、耦合、解耦、控制反转(IOC)、依赖注入(DI)
- spring(3)------控制反转(IOC)/依赖注入(DI)
- Spring源码阅读——简单模拟Spring的控制反转IOC和依赖注入(Bean的加载和获取)
- php 中的 依赖注入(DI) 和 控制反转(IoC)
- Spring IoC(控制反转)和DI(依赖注入)的理解
- C#|.NET从控制反转(依赖注入)想到事件注入 (非AOP)
- DIP(依赖倒置原则),IoC(控制反转),DI(依赖注入)复习总结
- 关于spring的两个概念:IoC(控制反转) ,DI(依赖注入)
- IoC(控制反转)和DI(依赖注入)
- spring 控制反转和依赖注入(1)
- Spring IoC和DI(反转控制和依赖注入)原理
- 二、IoC控制反转(或依赖注入)