控制反转( IOC )
控制反转的英文全称是Inversion ofControl (简称I0C),是近年来兴起的一种Java编程模式。该编程思想主要用于协调组件之间相互依赖关系,是面向对象思想的一种具体表现形式。
什么是控制反转
有一句好莱坞名言可以准确地概括出控制反转的本质:“Don't call us, we'll call you”(你呆着别动,到时我会找你)。
控制:传统Java SE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而IOC是有专门一个容器来创建这些对象,即由IOC容器来控制对象的创建
反转:传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象,也就是正转;而反转则是由容器来帮忙创建及注入依赖对象。为何是反转?因为由容器帮我们查找及注入依赖对象,对象只是被动的接受依赖对象,所以是反转。
先简单回顾面向对象的思想。面向对象=类+对象+继承+消息,面向对象将组件分类,使用时再实例化,类与类之间可以继承,它们通过消息互相联系。另一个要提到的概念是服务,在很多面向对象文章中都涉及到了这个概念,那么什么是服务呢?服务就是一个类向另一个类提供该类所需要的接口(或方法)。下面通过一个简单的例子展示面向对象的思想,具体代码如下:
class Computer {
CPU cpu = new CPU();
public void computerwork() {
cpu.cpuwork();
}
}