依赖注入是什么意思?获取依赖的方式是什么?

22 篇文章 1 订阅

计算机编程是把一些实际问题组织并抽象起来的过程,编写程序时,开发人员经常使用团队其他成员编写的代码或者一些第三方工具(如著名的开源库或者框架)。随着项目的扩大.项目中需要依赖的模块会越来越多,这时如何有效地组织这些模块是非常重要的。依赖注入能够有效解决模块问依赖的问题。
依赖注人的英文是Dependency Injection,在软件开发中缩写为DI。依赖注入应用了控制反转的设计思想,因此很多人也称依赖注人为控制反转。控制反转(Inversion of Control,loC)是一个重要的面向对象编程的法则,用来减少计算机程序的耦合问题,它一般分为两种类型——依赖注人和依赖查找(Dependency Lookup)。简单地说,控制反转是一种设计思想,而依赖注入是控制反转思想的一种实现方式。
在程序开发中,组件获取依赖通常有3种方式。
①使用new运算符直接创建出依赖。该方式是在自己的应用程序中创建依赖对象。它有一个弊端,就是当程序的多个模块都需要应用一个对象时,会造成模块之间的高耦合;如果一个对象参数过多,有可能还需要对象创建其他参数对象,所以这种方式无法适合复杂的应用。
②直接引用依赖,如引用全局变量。该方式需要一定的条件,例如依赖对象对于用户对象是直接开放的,这里不做讨论。
③在需要的地方传人依赖。该方式便是依赖注入,它的重要特点是在系统运行中可以把创建依赖对象的控制权交给IoC容器,由IoC容器动态地通过注入的方式,向某个对象提供它所需要的其他对象。这样对象与对象之间松散耦合,方便测试,利于功能复用,更重要的是使得程序的整个体系结构变得非常灵活。
依赖注人对编程带来的最大改变不是从代码上(而是从思想上发生了“主从换位”的变化,把应用程序向依赖对象主动出击变为应用程序被动的等待,由IoC容器来创建并注入它所需要的资源。例如将IoC容器看作一个“保姆”,“我”看作用户对象,“蛋糕”看作依赖对象:当“我”想吃“蛋糕”时不是自己来做,而是告诉“保姆”,“保姆”做好之后交给“我”,整个过程如图4-9所示。

在实际开发中,loC容器通常会是一个应用框架,如Spring、AngularJS等:用户对象表示开发人员编写的程序;依赖对象可以是任何用户对象所需要依赖的资源,包括对象、第三方资源、常量等。 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值