对依赖注入的理解

601人阅读 评论(0) 收藏 举报
分类:

  依赖注入是指当一个对象要与其他对象发生依赖关系时,通过抽象来注入所依赖的对象。A对象依赖于B对象,等价于A对象内部存在对B对象的“调用”,而前提是A对象内部拿到了B对象的引用。B对象的引用的来源无非有以下几种:A对象内部创建(无论是作为字段还是作为临时变量)、构造器注入、属性注入、方法注入。后面三种方式统称为“依赖注入”,而第一种方式我也生造了一个名词,称为“依赖内生”,二者根本的差异即在于,我所依赖的对象的创建工作是否由我自己来完成。当然,这个是广义的依赖注入的概念,而我们一般不会这样来使用。我们通常使用的,是依赖注入的狭义的概念。

  构造注入是指通过构造函数来传入具体类的对象,设值注入是指通过setter方法来传入具体类的对象,而接口注入是指通过实现在接口中声明的业务方法来传入具体类的对象。这些方法在定义时使用的是抽象类型(参数定义),在运行时再传入具体类型的对象(传参数时传具体的),由子类对象来覆盖父类对象。

  “依赖注入”常常用于扩展,尤其是在开发框架的设计中。从某种意义上来说,任何开发框架,天生都是不完整的应用程序。因此,一个优秀的开发框架,不仅要让开发者能够重用这些久经考验的的卓越的解决方案,也要让开发者能够向框架中插入自定义的业务逻辑,从而灵活自由地适应特定的业务场景的需要——也就是说要具备良好的可扩展性。框架良好的扩展性都与“依赖注入”的使用密不可分!

  比如我们使用接口回调;setListener等等都是依赖注入的原理。

查看评论

深入浅出理解依赖注入

容器,字面上理解就是装东西的东西。常见的变量、对象属性等都可以算是容器。一个容器能够装什么,全部取决于你对该容器的定义。当然,有这样一种容器,它存放的不是文本、数值,而是对象、对象的描述(类、接口)或...
  • forLightWay
  • forLightWay
  • 2017-02-23 17:27:05
  • 4543

依赖注入和控制反转的理解,写的太好了。

学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC 、DI这两个概念是模糊不清的,是很难理解的,今天和大家...
  • bestone0213
  • bestone0213
  • 2015-08-11 17:53:22
  • 50058

依赖注入的概念理解

依赖注入的概念理解
  • u012755393
  • u012755393
  • 2016-07-05 09:42:26
  • 653

谈谈对Spring IOC的理解

学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC 、DI这两个概念是模糊不清的,是很难理解的,今天和大家...
  • zhanghongjie0302
  • zhanghongjie0302
  • 2016-04-30 15:56:07
  • 10581

对Spring框架思想中依赖注入的理解

最近看了spring框架,相信大家都不陌生。看到Spring,它就马上介绍了依赖注入这个思想。 看完这个介绍后,我感觉自己并没有很理解她。 下面就简单介绍一下书中给的解释: 在依赖注入的模式下,创...
  • u011730199
  • u011730199
  • 2015-08-11 10:58:55
  • 1479

依赖注入的介绍与理解!

最近在看dagger2,发现对于一些概念真的不懂,于是找资料看到依赖注入,借此好好学习一下。 依赖注入 参考链接:http://baike.baidu.com/item/%E6%8E%A7%E5%...
  • jinhui157
  • jinhui157
  • 2017-03-23 10:54:20
  • 259

10分钟快速理解依赖注入

看到网络上很多“依赖注入”解释的话题,这篇博客呢也只是我自己的观点,如果你有不同的观点请拍砖,不用客气。 业务场景 小明要去旅游,但是还未确定以什么方式出游,有可能是徒步旅行,也有可能是自驾游。 代...
  • ylhalo
  • ylhalo
  • 2017-05-27 09:26:39
  • 901

理解依赖注入

虽然Spring并不是依赖注入的首创者,但RodJohnson是第一个高度重视以配置文件来管理Java实例的协作关系的人,他给这种方式起了一个名字,控制翻转(Inversion of Control,...
  • liulu164212
  • liulu164212
  • 2017-09-25 21:59:09
  • 92

java依赖注入理解

1. 依赖 如果在 Class A 中,有 Class B 的实例,则称 Class A 对 Class B 有一个依赖。例如下面类 Human 中用到一个 Father 对象,我们就说类 Hu...
  • junjianzhang
  • junjianzhang
  • 2015-04-23 16:45:08
  • 357

设计模式

看大话设计模式n多遍,从起初的小菜一窍不通,到现在的略知一二总是成长的过程。纵观23种设计模式,关键要掌握其核心思想及类图中的关系,离不开六大原则。在近几年的软考中,使用依赖倒转原则尤其多。结合设计模...
  • qqxyy99
  • qqxyy99
  • 2017-05-14 18:56:01
  • 341
    个人简介
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 72万+
    积分: 7454
    排名: 3683