IOC
定义:IOC(Inversion of Control)控制反转模式,意味着去除所有由该类产生但不由该类直接负责的对象实例,而改由外界传入。通过IoC模式可以彻底解决耦合,它把耦合从代码中移出去,放到统一的XML文件中,通过一个容器在需要的时候把这个依赖关系形成,即把需要的接口实现注入到需要它的类中。
控制反转:传统应用,程序事先定义好接口的实现。而IOC模式里程序接口的实现是由“容器”(程序员控制)掌管,程序由自发创建接口的实现变为容器(程序员指挥容器)指挥创建,这可能就是所谓“控制反转”的原因了。
传统的DOC程序->windows应用,是一种控制反转的应用。
传统没有IOC控制的应用->IOC控制实现的应用也是一种控制反转的应用。
IOC: 从以下几点可以看出,IOC将设计模式运用到了炉火纯青的地步。
1,解决复杂调用关系:如果你的项目中有非常多的类;调用关系很复杂,而且调用关系随时都可能变化,那么,使用无需照顾调用关系的Ioc容器无疑是减轻开发负担的首选。
2,实现好的工厂模式:可以把IoC模式看做是工厂模式的升华,可以把IoC看作是一个大工厂,只不过这个大工厂里要生成的对象都是在XML文件中给出定义的,然后利用高级语言 的“反射”编程,根据XML中给出的类名生成相应的对象。
3,解决耦合问题(可以看做是工厂模式的作用嘛):通过文本的配件文件进行应用程序组件间相互关系的配置,而不用重新修改并编译具体的代码。但需要重新运行服务来使配置文件被重新读取。
4,使用接口的好处:IOC使用接口来调用对象,只要对象互相尊重(respect)对方的接口,对象的封装性也就得到了良好地维护,在运行期间,任何对象都能够被替换为其他相同类型的对象。
IOC容器:实现了IOC模式的IOC容器。