浏览 10301 次
锁定老帖子 主题:依赖注入原理
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (2)
|
|
---|---|
作者 | 正文 |
发表时间:2006-10-16
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-10-16
对象间相互引用(即在对象中的某个方法中new一个其它对象)这应该也是一种对象之间的依赖关系的实现方式阿。
|
|
返回顶楼 | |
发表时间:2006-10-16
你说的这些不是什么原理吧,按我的理解反射机制才是原理,你说的是依赖方式
|
|
返回顶楼 | |
发表时间:2006-10-17
同意楼上的!
|
|
返回顶楼 | |
发表时间:2006-10-17
其实本质是把硬编码的类之间关系以配置文件的形式来规范(反射机制实现).
|
|
返回顶楼 | |
发表时间:2006-10-17
依赖注入背后的基本原理是spring官方参考文档上面说的。。。
官方参考(中文翻译): 依赖注入(DI)背后的基本原理是对象之间的依赖关系(即一起工作的其它对象)只会通过以下几种方式来实现:构造器的参数、工厂方法的参数,或给由构造函数或者工厂方法创建的对象设置属性。因此,容器的工作就是创建bean时注入那些依赖关系。相对于由bean自己来控制其实例化、直接在构造器中指定依赖关系或者类似服务定位器(Service Locator)模式这3种自主控制依赖关系注入的方法来说,控制从根本上发生了倒转,这也是控制反转(Inversion of Control, IoC)名字的由来。 并不是讨论上面所说的是不是依赖注入的基本原理问题,而是上面所说的对象间依赖方式中没有提到对象间相互调用(即在某个对象中new一个另外的类对象)的依赖关系(注意上面的红字描述), 问题: 对象间相互调用关系是不是一种对象间的依赖关系的方式? |
|
返回顶楼 | |
发表时间:2006-10-17
引用 问题: 对象间相互调用关系是不是一种对象间的依赖关系的方式?
我觉得“对象间相互调用关系”当然是一种依赖关系。 至于搂主的疑问: 引用 对象间相互引用(即在对象中的某个方法中new一个其它对象)这应该也是一种对象之间的依赖关系的实现方式阿
我觉得这种在方法中new一个对象,然后形成调用关系,在大多数情况下是不雅的(少数必要情况我还没有遇到过),原因有下面几处: 1、对象间依赖关系构成分散,不宜维护 这种在方法中new一个对象,缺乏统一的管理和控制,如果用这种方式,依赖构成可能分散在程序的各个角落,日后程序可读性和维护性将受到影响; 2、可能会带来频繁创建对象的损失 直接在方法中new对象,每一次方法调用,都需要一次对象构造过程; 不知道有没有正确理解搂主的意思 |
|
返回顶楼 | |
发表时间:2006-10-18
引用 我觉得这种在方法中new一个对象,然后形成调用关系,在大多数情况下是不雅的(少数必要情况我还没有遇到过),原因有下面几处: 1、对象间依赖关系构成分散,不宜维护 这种在方法中new一个对象,缺乏统一的管理和控制,如果用这种方式,依赖构成可能分散在程序的各个角落,日后程序可读性和维护性将受到影响; 2、可能会带来频繁创建对象的损失 直接在方法中new对象,每一次方法调用,都需要一次对象构造过程; 不知道有没有正确理解搂主的意思 我的意思是:我认为对象间的相互调用也是对象间的依赖关系的一种实现方式,但spring文档里面却说: 对象之间的依赖关系(即一起工作的其它对象)只会通过以下几种方式来实现:构造器的参数、工厂方法的参数,或给由构造函数或者工厂方法创建的对象设置属性,让我不理解。 现在明白了,感觉这里所说的依赖注入背后的基本原理应该是Spring依赖注入的实现方式,即Spring的依赖注入是通过构造器的参数、工厂方法的参数,或给由构造函数或者工厂方法创建的对象设置属性的方式来实现。不知道这样理解对不对。 |
|
返回顶楼 | |