IOC概念和原理
IOC
- 控制反转(反转控制),把对象创建和对象之间的调用过程,交给Spring进行管理
- 使用IOC的目的:
- 为了降低耦合度
IOC底层原理
- xml解析、工厂模式、反射
IOC底层图
Java框架的目的就是降低耦合度,因为Java提倡的是高内聚,低耦合
原始方式
耦合度太高了
怎么解决这个问题?
使用工厂模式
通过工程模式降低Service和dao的耦合度
虽然工程降低了Servcie和Dao的耦合度
但是工厂对他们两个也有耦合
耦合度不可能为0,只能尽可能降低
主要的目的是将耦合度降到最低
IOC解耦的过程
IOC的目的是进一步降低耦合度
怎么做的
第一步:xml文件,配置创建对象
<!-- 配置User对象创建 --> <bean id="user" class="com.ye.User"></bean>
第二步:有service类和dao类,创建工厂类
class UserFactory{ public static UserDao getDao(){ //1.对xml解析获得值 String classValue = class属性值; //2.通过反射来获取他的对象 Class c = Class.forName(classValue); //3.将对象创建 return (UserDao)c.newInstance(); } }
虽然这么写也有耦合度,但是耦合度比上面两种更低