什么叫IOC
IOC——Inversion of Control,即控制反转
这是一种设计思想,它指导我们设计出低耦合、更优良的程序。
控制:
IOC容器控制了对象,控制了外部资源获取。
反转:
是容器帮用户查找及注入依赖对象,对象只是被动接受依赖对象
IOC的实现原理就是工厂模式加反射机制
工厂模式:
即创建一个类专门用来实例化其他类,它们通常有相同的父类
反射机制:
是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。前提是知道这个类的名字。
那么为什么要用反射?
A a = (A)Class.forName(className).newInstance();
这和A a = new A();
是一样的效果,那么为什么要这么麻烦?这就涉及到了动态的概念
反射使得程序可以在运行时才知道类名,并生成对象,实现其中的方法,不用预先将对象的创建写入代码,使得程序更加灵活。
当你要创建另一个类的对象时使用反射机制能够不用修改源代码,反射机制根据类名便能创建对象。