什么是控制反转,它的好处是什么?
来源:互联网 发布:人工智能介绍文章 编辑:程序博客网 时间:2024/04/30 11:57
在最开始写程序,DAO是我们自己new出来的,这时候的编程完全控制在自己手里用了spring之后,初始化过程控制在容器手里了,我们自己不再去new它了,反转到容器那里去了。原来我们的程序我们控制的是具体的实现,写程序直接写实现,现在我们控制的是它的接口它的抽象,原来我们依赖的是它的实现,现在我们依赖的是它的抽象。从具体的实现反转到抽象的概念上,我们针对的是接口编程。public void add(User user){ this.userDAO.save(user); System.out.println(user.getPassword()); System.out.println(user.getUser()); }UserDAO.save(),UserDAO就是一个接口,我们面对的是接口编程,但是真正注入进来的是具体的实现。
IoC的优点和缺点
IoC最大的好处是什么?因为把对象生成放在了XML里定义,所以当我们需要换一个实现子类将会变成很简单(一般这样的对象都是实现于某种接口的),只要修改XML就可以了,这样我们甚至可以实现对象的热插拨(有点象USB接口和SCSI硬盘了)。 IoC最大的缺点是什么?(1)生成一个对象的步骤变复杂了(事实上操作上还是挺简单的),对于不习惯这种方式的人,会觉得有些别扭和不直观。(2)对象生成因为是使用反射编程,在效率上有些损耗。但相对于IoC提高的维护性和灵活性来说,这点损耗是微不足道的,除非某对象的生成对效率要求特别高。(3)缺少IDE重构操作的支持,如果在Eclipse要对类改名,那么你还需要去XML文件里手工去改了,这似乎是所有XML方式的缺憾所在。
0 0
- 什么是控制反转,它的好处是什么?
- 控制反转为程序开发带来的好处是什么?
- 反转控制的几个重要好处
- 反转控制的几个重要好处
- 什么是Hibernate,好处是什么?
- 什么是代码,它的作用是什么?
- 什么是AI?它的应用领域是什么?
- 面向方面的编程:它的好处是什么?
- [转] 面向方面的编程:它的好处是什么?
- 面向方面的编程:它的好处是什么?
- 面向方面的编程:它的好处是什么?
- 面向方面的编程:它的好处是什么?
- [转] 面向方面的编程:它的好处是什么?
- [转] 面向方面的编程:它的好处是什么?
- 微服务是什么以及它带来的好处
- 什么是【真正的】兴趣爱好?以及它有啥好处?
- 什么是控制反转(Ioc)
- 一个故事教你看懂什么是数字证书,它的原理是什么?它的作用是什么?
- 从Windows的角度看Mac OS X软件开发
- flex数据绑定
- 【OpenCV】SIFT原理与源码分析
- 从cin读入一组词并把它们存入一个vector对象中去,如何把所有的词都改为大写形式,输出结果,每个词占一行。
- 直接在jsp页面上使用flex标签
- 什么是控制反转,它的好处是什么?
- Flex相册
- 设置端口转发来访问Virtualbox里linux中的网站
- ExtJS渲染失败解决方案(一)
- 拦截和跟踪HTTP请求的主要方法及实现
- ExtJS页面渲染失败解决方案(二)
- div构建table
- Flex动态加载svg图片
- tomcat发布两个项目报错webAppKey重复设置