控制反转(Inversion of Control,IoC),也叫依赖注入(Dependency Injection, DI),是一个重要的面向对象编程的法则来削减程序的耦合问题。解释如下:
许多程序都是由两个或是更多的类通过彼此的合作来实现业务逻辑,这使得每个对象都需要与其合作的对象(也就是它所依赖的对象)的引用。如果这个获取过程要靠自身实现,将导致代码高度耦合并且难以测试。
控制反转,对象在被创建的时候,由一个调控系统将其所依赖的对象的引用传递给它,也可以说,依赖被注入到对象中。所以,控制反转是,关于一个对象如何获取他所依赖的对象的引用,这个责任的反转。
要用到的对象不是自己创建的,而是外面作为参数传给它的。参数类型为父类或接口,传来的参数为子类的引用,用到了面向对象机制的多态、晚绑定和面向接口编程,来实现松耦合。其实道理很简单。
可以使用这种机制来建立框架,实现上层的业务逻辑。
原文链接:/javaschema/286252.html