IOC叫作控制反转,能够理解为我要作一件事,分为1,2,3,4这4部,咱们能够在一个函数实现这四步,控制反转就是将这个流程体如今框架中。将原来实如今应用程序流程控制转移到框架中,框架利用一个引擎驱动整个流程的执行。应用程序无需关心该工做流程的细节,他只须要启动这个引擎便可。可是这个引擎一旦被启动,框架就会按照预先编排好的流程进行工做,若是应用程序但愿整个流程按照本身但愿的方式被执行,针对流程的定制通常发生在启动引擎以前。框架
通常来讲框架会以相应的行驶提供一系列的扩展点,应用程序则痛过定义扩展的方式实现对流程某个环节的定制。在引擎被启动以前,应用程序将所需的扩展注册到框架中。一旦引擎被正常启动,这些注册的扩展会自动参与到整个流程的执行过程当中。函数
提到DI,依赖注入,是IOC的一种重要实现
一个对象的建立每每会涉及到其余对象的建立,好比一个对象A的成员变量持有着另外一个对象B的引用,这就是依赖,A依赖于B。IOC机制既然负责了对象的建立,那么这个依赖关系也就必须由IOC容器负责起来。负责的方式就是DI——依赖注入,经过将依赖关系写入配置文件,而后在建立有依赖关系的对象时,由IOC容器注入依赖的对象,如在建立A时,检查到有依赖关系,IOC容器就把A依赖的对象B建立后注入到A中(组装,经过反射机制实现),而后把A返回给对象请求者,完成工做。对象