Inversion of cotrol(Ioc)
ioc控制反转的意思核心就是某一对象(业务对象)需要的对象(依赖对象)需要谁去new的问题,不使用ioc思想的对象,需要自己在程序内部显式的使用new关键字去主动的得到所需要的对象,而使用了ioc思想后,我们可以通过有参数的构造方法或者setter方法只需要传入我们需要的对象名称,区别在与构造方法在当前对象构造好之后所有依赖的对象就已经就绪,setter的方式需要我们构造好当前对象之后再调用setter方法去传入我们所需要的对象名称。业务程序前后的变化主要是依赖对象自己声明自己new,变化后是只需要声明就好。
谁去new,怎么new
能作为Ioc service provide的方式有很多种,比如spring等等。并且有很多的方式实现ioc思想,它的主要目的就是两件事:
- 实现业务对象所依赖对象的创建(new)
- 业务对象和依赖对象之间关系的绑定
比如spring可通过直接编码或者配置文件等方式罗列清楚对象之间的关系。
配置文件方式(xml)等以更清晰的展示给程序员的方式底层都是通过编码的方式来实现,只不过这部分代码不需要程序员再去写。