spring之控制反转IOC

目录

一、控制反转如何出现的?

二、IOC的理解


一、控制反转如何出现的?

    首先,我们学习java编程时,必定要接触到spring这个框架的,这个spring是春天的意思,的确现在它就是java的春天,长盛不衰;好了,我们进入到正题,我们今天要讲一下spring的一个控制反转,首先,我们先说一下它出现的背景,

 在2004年,Martin Fowler就提出了“哪些方面的控制被反转了?”这个问题,他通过研究,发现了大多数应用程序都是由俩个或是更多的类,通过彼此的合作来实现企业的业务逻辑的,如果是按传统的方式的话,那么每个对象都需要获取与其合作的对象的引用,相当于一个对象中包含并调用了很多A对象、B对象、C对象等等。这些对象的获取过程都需要靠自身实现,也就是自己必须主动地去创建对象B或者使用已经创建的对象B,无论是创建对象还是说使用对象,控制权都在自己,这样将会导致代码高度耦合并且难以维护和调试。

所以,就提出来“控制反转”的概念,

 控制反转是面向对象编程中的一种设计原则,它是面向对象编程中的一种设计原则,通过这种方式,我们就不需要自己主动去new对象,相当于第三方给我们对象,我们直接使用就可以了,而这个第三方就是一个俗称的ioc容器,专门管理对象的生命周期和依赖关系的。

二、IOC的理解

1.按以前的方式,没有使用ioc,如图所示,下面的对象都是互相关联的,比如,我要在类中使用对象A,而对象A里面又需要分别new对象B和对象C,所以它们之间就高度耦合了

 2.按现在的方式,使用了ioc,如图所示,由于引进了第三方,全部对象的控制权全给了这个IOC容器,所以,IOC容器就称为了核心,这样做的好处是,降低了各个对象的依赖关系,比如,我要在类中使用对象A,对象A在运行到需要对象B、对象C的时候,IOC容器会帮你主动创建一个对象B和对象C,来注入到对象A需要的地方。

 3.使用后,效果如图所示,这时的几个对象已经没有了耦合的关系了,互相没有了关联。这时候,我在开发测试时,突然间发现了bug,我需要调整相关的对象,比如,我在使用对象A时,需要用到别的对象,此时,我只需要通过注解的方式,来注入另一个对象,还有注入的对象B可能有了调整,但我对象A不受影响,这就解耦合了,方便于以后的代码的调整和测试。

 

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奶厂小程

码字不易,你的鼓励是我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值