一、IOC(Inverse of Control)控制反转
1.依赖注入DI(dependency injection)
所谓依赖,从程序的角度看,就是比如 A 要调用 B 的方法,那么 A 就依赖于 B,反正 A 要用到 B,则 A 依赖于 B。所谓倒置,你必须理解如果不倒置,会怎么着,因为 A 必须要有 B,才可以调用 B,如果不倒置,意思就是 A 主动获取 B 的实例:B b = new B (),这就是最简单的获取 B 实例的方法(当然还有各种设计模式可以帮助你去获得 B 的实例,比如工厂、Locator 等等),然后你就可以调用 b 对象了。所以,不倒置,意味着 A 要主动获取 B,才能使用 B;到了这里,就应该明白了倒置的意思了。倒置就是 A 要调用 B 的话,A 并不需要主动获取 B,而是由其它人自动将 B 送上门来。
2.IOC思想
java 程序中的每个业务逻辑至少需要两个或以上的对象来协作完成,通常,在使用其他的合作对象时,均要使用像 new object() 这样的语法来完成合作对象的申请工作。你会发现:对象间的耦合度高了。而 IOC 的思想是:**Spring 容器来实现这些相互依赖对象的创建、协调工作。对象只需要关心业务逻辑本身就可以了。**从这方面来说,对象如何得到他的协作对象的责任被反转了(IOC、DI)。
IOC和DI是代表的含义是类似的