什么是IOC?好处是什么?与传统的开发模式有什么区别?
一、含义
其实就是依赖注入或者控制反转,主要用于:
1、对象创建
2、依赖管理
二、好处
目的就是为了解耦合,使代码具有更高的扩展性和维护性
1、耦合度和扩展性的关系
耦合性越高,加入新功能就需要大量的修改已有的代码,可扩展性越低
2、耦合度和可维护性的关系
耦合性越高,代码之间关联性依赖性紧密性越高,修改某部分代码对其它的代码影响就越大,可维护性越低
三、软件设计目标
松耦合,低耦合(高可维护性,高扩展性)
举例:比如面向对象之封装,就体现了松耦合的原理
原因:封装反映和事物的相对独立性,封装在编程中的作用就是使对象以外的部分不能随意更改对象的属性,从而有效避免了外部错误操作对此对象的影响
四、举例论证
1、对象创建
通常情况下创建对象的方式:Man man = new Man();
而通过Spring框架来创建对象,则不需要使用new关键字
2、依赖管理
适应未来的变化,尽量少去修改现有的代码
以前dao 与service 的依赖是 你们自己在用代码控制
例如:
Class UserServiceImpl {
Private UserDao userDao = new UserDaoImpl();
如果此时需要修改UserDaoImpl2为其实现类,那么就需要手动修改service层的代码
Private UserDao userDao = new UserDaoImpl2();
}
这样就违背的开闭原则:面向修改关闭,面向扩展关闭
而现在使用Spring框架帮我们建立Dao层和Service层代码的依赖关系,就不需要修改代码,而是修改配置文件,这样就不需要重新编译Java文件,因为文件没有被修改,减少了bug的产生