ondestroy什么时候调用_为什么我们需要依赖注入?

以前刚入行的时候一直很困惑,spring这个东西为什么把new一个对象的事情搞这么麻烦。后来慢慢入行这才了解了依赖注入是怎么一回事。

本文决定非常浅显的给大家聊聊依赖注入。

我们的疑问是从Spring框架的xml开始的,这个xml被人诟病已久。其实呢依赖注入并非值得是用xml来new对象,依赖注入其实是一种思想,一种方法。而xml是它最菜的实现方式。。

由浅入深慢慢来~~~~~~

第一步:为什么我们不能new对象?

随时随地new对象会引发一个问题,就是你new的实例会满天飞。这样一来你每一个实体进行扩充,修改,放弃的时候你就需要满世界的找对象,一个一个改过来。

例如:

collection  map=new HashMap();

有一天老大跟你说 HashMap不太行,全部换成新版的XXXXMap吧~~~你是不是需要全部一起换?

所以这时候我们需要通过工厂模式来管理对象了。代码如下:

collection  map=MapFactory.createMap();

这样一来,我们随时想替换掉HashMap就变得非常简单了。

第二步:为什么我们不用工厂模式,而要专门做依赖注入框架。

当你只需要一个Map对象的时候很简单。这没错~~~但是你需要创建的对象是一个多层次的对象呢?这样问题就来了。

例如,我要一辆车,那么就需要轮胎,我需要一个轮胎,那么就需要一个轮毂,若干螺丝,外胎,内胎,刹车……

那么问题就来了。我应该做的是造车的时候再种橡胶树么?

这样不对啊。

我们应该做的是,在造车的时候,就发现已经有了生产完全的轮胎,直接调用轮胎装上去就行了。至于轮胎里面需要什么东西,我不是重新做,而是直接调用现成的东西。

这就是依赖注入。

他代表的意义是:我不是先有车才去生产轮胎,而是已经有了轮胎才去生产车。

这样的划分也代表的是一种思维方式,让你的所有对象之间从思维与实现上解耦。这样一来我的对象才是真正的独立。

所以解决你肯定遇到了的一个困惑:XML是一个非常累人的依赖注入实现方式而已,依赖注入其实还有其他实现,例如注解的方式。

第三步,依赖注入是一个好的思想,但是优势在什么地方呢?解耦在什么地方呢?

继续沿用上面的造车的例子。

造车,调用车轮,调用外胎,调用橡胶。

我刚造好一辆车,现在我们需要把车轮换成另外一个车轮。

这样一来,依赖注入的优势就体现出来了,因为你只需要替换掉调用车轮的车轮对象即可。

三步下来,依赖注入的优势就出来了。特别是当团队合作的时候,他完全可以不用理解造车轮的细节就可以完好的换掉车轮对象。

现在你大概了解了什么叫做依赖注入,在spring实战中,作者也强烈推荐用注解方式来操作spring。

希望本文能帮助到各位。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值