为什么要有IOC

柳絮11 2019-07-03 02:21:34
很好奇这个,雪spring到这里半知半解。
...全文
451 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
李培文 2019-08-06
  • 打赏
  • 举报
回复
两个故事讲解: 故事1:要造一辆车,先造轮子,根据轮子,造车盘。根据车盘,造车架。根据车架,造车身。 故事2:先造车身,根据车身,造车架。根据车架,造车盘。根据车盘,造轮子。 问题1:如果轮子要是需要变动,谁变动大? 答案:故事1,因为大家都是根据轮子来设计车的。 问题2:如果车身变动? 答案:变动一样,都全部需要重新设计。
qq2623102025 2019-07-23
  • 打赏
  • 举报
回复
引用 10 楼 iseepeople 的回复:
[quote=引用 6 楼 qq2623102025 的回复:]
我理解的,IOC要与依赖注入结合来认识。
如果是一个简单的类,自己new一下也费不了多少时间,IOC其实看不出有什么优秀的地方;但是实际业务过程中,一个类中是会有很多对象成员的,如果手动来new和设置这些成员对象,是非常费手脚的,比如有10个,你就手动new10次,再set10次,简单但是枯燥,结合IOC和自动依赖注入,就能够省掉中间这些对象成员的注入过程,提升我们的开发效率。

IOC不是代替你去new一个对象出来,而是在整个工程中只有那一个对象,大家都用它,减少内存开销。[/quote]
IOC就是帮你生产对象呀,不管是帮你生产一个,还是帮你生产多个。你说的应该是单例模式,IOC不仅可以一个类只给出一个对象(每次都返回同一个对象),也可以一个类每次请求都生成一个新的对象。
Monday_@@ 2019-07-23
  • 打赏
  • 举报
回复
引用 5 楼 蓝色雨点 的回复:
你要先理解IoC到底是干嘛用的,也就能理解为什么要用它。 按我的理解,IoC说白了就是个工厂,由这个工厂帮你创建对象。 打个比方,你现在很饿需要一个面包(没错就只是一个面包),这时候你可以将面包的制作黑匣子交给一个名叫IoC的人,然后给Ioc说:五分钟后我要吃到面包。具体这个面包是怎么做的你不用管(实际上Ioc也不知道,只有面包自己知道); 五分钟后,IoC把面包给你,你却发现这不是你喜欢的口味。然后你或者别人重新拿着另一张面包制作单给IoC...再五分钟后,你再次从IoC那里收到你喜欢的面包。 这就是IoC的作用以及好处: 1. 我只要面包 2. 我不用自己做面包 2. 我只和面包(无需关心IoC这个人是男是女)打交道,谁送来的面包无所谓,能送到就行
很形象嘛
iseepeople 2019-07-19
  • 打赏
  • 举报
回复
引用 6 楼 qq2623102025 的回复:
我理解的,IOC要与依赖注入结合来认识。 如果是一个简单的类,自己new一下也费不了多少时间,IOC其实看不出有什么优秀的地方;但是实际业务过程中,一个类中是会有很多对象成员的,如果手动来new和设置这些成员对象,是非常费手脚的,比如有10个,你就手动new10次,再set10次,简单但是枯燥,结合IOC和自动依赖注入,就能够省掉中间这些对象成员的注入过程,提升我们的开发效率。
IOC不是代替你去new一个对象出来,而是在整个工程中只有那一个对象,大家都用它,减少内存开销。
  • 打赏
  • 举报
回复
1、用注入bean的形式,来帮助你方便的调用对象 从 new 到 @Autowired 2、接口存在多个实现 @Autowired @Qualifier("service1") private Service service1; @Autowired @Qualifier("service2") private Service service2; 配置默认bean引入(@Primary定义默认引入的bean)
柳絮11 2019-07-09
  • 打赏
  • 举报
回复
我自己看了点soring的源码,当然也包括反射,和asm以及javaassist的加载,对于spring的理解有点问题,是不是可以这样理解,spring框架替代了我们本身去new一个对象,还需要对这个对象相关联的对象进行新建,不然会跑出异常,换言之,就是将依赖关系替换到配置文件当中,通过spring进行对象的注入,是对象的创建由手工变成框架,而对于代码来讲,再一定程度上解耦,依赖关系一定程度上转移到spring,类似于构建者模式。
cwmlow 2019-07-09
  • 打赏
  • 举报
回复
说最实际的,减少重复搬砖代码,增加搬砖效率。让我们只专注业务上的搬砖。其他的交给spring来完成
qq2623102025 2019-07-09
  • 打赏
  • 举报
回复
我理解的,IOC要与依赖注入结合来认识。
如果是一个简单的类,自己new一下也费不了多少时间,IOC其实看不出有什么优秀的地方;但是实际业务过程中,一个类中是会有很多对象成员的,如果手动来new和设置这些成员对象,是非常费手脚的,比如有10个,你就手动new10次,再set10次,简单但是枯燥,结合IOC和自动依赖注入,就能够省掉中间这些对象成员的注入过程,提升我们的开发效率。
蓝色雨点 2019-07-09
  • 打赏
  • 举报
回复
你要先理解IoC到底是干嘛用的,也就能理解为什么要用它。 按我的理解,IoC说白了就是个工厂,由这个工厂帮你创建对象。 打个比方,你现在很饿需要一个面包(没错就只是一个面包),这时候你可以将面包的制作黑匣子交给一个名叫IoC的人,然后给Ioc说:五分钟后我要吃到面包。具体这个面包是怎么做的你不用管(实际上Ioc也不知道,只有面包自己知道); 五分钟后,IoC把面包给你,你却发现这不是你喜欢的口味。然后你或者别人重新拿着另一张面包制作单给IoC...再五分钟后,你再次从IoC那里收到你喜欢的面包。 这就是IoC的作用以及好处: 1. 我只要面包 2. 我不用自己做面包 2. 我只和面包(无需关心IoC这个人是男是女)打交道,谁送来的面包无所谓,能送到就行
maradona1984 2019-07-03
  • 打赏
  • 举报
回复
好处书上写的清清楚楚,但你可能看不懂,这个要上升到项目整体的层次看,解耦是一个比较虚幻的解释,但并不准确 因为很多没有接口的bean,就算用到接口,大多数接口并不存在多个实现,解耦就是一句空话罢了 实际上,bean由spring创建,那就可以在这个上面做很多文章,大多数时候bean就是用来aop的,真正解耦用的比较多是spring自己罢了
  • 打赏
  • 举报
回复
主要是解耦 反射机制也是通过ioc来实现的 还是很强大的
正怒月神 2019-07-03
  • 打赏
  • 举报
回复
因为所有的对象创建交给容器来弄。 其实说白了就是方便解耦。

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧