IOC概述底层原理
概述:控制反转( IOC )
,符合面向对象中的设计原则,是用于降低代码的耦合度。在我们传统中调用另外一个对象时要先创建一个实例,也就是new一个对象。现在我们可以用IOC来创建对象和对象调用来降低耦合度。
耦合度:就是对象之间的依赖性。对象之间的耦合度越高,维护成本越高。
底层原理:
- xml解析
- 工厂模式
- 两个类之间增加一个过渡类(也就是IOC容器)。传统中是A类直接去主动获取B类(正向),在工厂模式中,A类是被动等待 IOC容器去获取B类后注入A类中,所以也叫反转。
- 反射
IOC接口(BeanFactory)
- IOC思想是基于IOC容器实现的。
- Spring提供IOC容器实现的两种方式
BeanFactory
接口:IOC的底层实现,是Spring内部的使用接口,不提供给开发人员使用。(加载配置文件的时候不会创建对象,而在获取(使用)创建的对象的时候才会创建对象)ApplicationContext
接口:是BeanFactory接口的子接口,提供更多上层的强大功能,专门给开发人员使用。(在配置文件的时候就创建对象)