springIOC讨论的帖子

间的依赖关系(即一起工作的其它对象)只会通过以下几种方式来实现:构造器的参数、工厂方法的参数,或给有构造函数或者工厂方法创建的对象设置属性。因此,容器的工作就是创建bean时注入那些依赖关系。

 

对象间相互引用(即在对象中的某个方法中new一个其它对象)这应该也是一种对象之间的依赖关系的实现方式阿。

 

你说的这些不是什么原理吧,按我的理解反射机制才是原理,你说的是依赖方式 

 

 

其实本质是把硬编码的类之间关系以配置文件的形式来规范(反射机制实现). 

 

依赖注入背后的基本原理是spring官方参考文档上面说的。。。
官方参考(中文翻译):
   依赖注入(DI)背后的基本原理是对象之间的依赖关系(即一起工作的其它对象)只会通过以下几种方式来实现:构造器的参数、工厂方法的参数,或给由构造函数或者工厂方法创建的对象设置属性。因此,容器的工作就是创建bean时注入那些依赖关系。相对于由bean自己来控制其实例化、直接在构造器中指定依赖关系或者类似服务定位器(Service Locator)模式这3种自主控制依赖关系注入的方法来说,控制从根本上发生了倒转,这也是控制反转(Inversion of Control, IoC)名字的由来。

并不是讨论上面所说的是不是依赖注入的基本原理问题,而是上面所说的对象间依赖方式中没有提到对象间相互调用(即在某个对象中new一个另外的类对象)的依赖关系(注意上面的红字描述),
问题: 对象间相互调用关系是不是一种对象间的依赖关系的方式? 

 

引用
问题: 对象间相互调用关系是不是一种对象间的依赖关系的方式?

我觉得“对象间相互调用关系”当然是一种依赖关系。
至于搂主的疑问:

引用
对象间相互引用(即在对象中的某个方法中new一个其它对象)这应该也是一种对象之间的依赖关系的实现方式阿

我觉得这种在方法中new一个对象,然后形成调用关系,在大多数情况下是不雅的(少数必要情况我还没有遇到过),原因有下面几处:

1、对象间依赖关系构成分散,不宜维护
这种在方法中new一个对象,缺乏统一的管理和控制,如果用这种方式,依赖构成可能分散在程序的各个角落,日后程序可读性和维护性将受到影响;

2、可能会带来频繁创建对象的损失
直接在方法中new对象,每一次方法调用,都需要一次对象构造过程;

不知道有没有正确理解搂主的意思 

 

 

 

引用
我觉得这种在方法中new一个对象,然后形成调用关系,在大多数情况下是不雅的(少数必要情况我还没有遇到过),原因有下面几处:

1、对象间依赖关系构成分散,不宜维护
这种在方法中new一个对象,缺乏统一的管理和控制,如果用这种方式,依赖构成可能分散在程序的各个角落,日后程序可读性和维护性将受到影响;

2、可能会带来频繁创建对象的损失
直接在方法中new对象,每一次方法调用,都需要一次对象构造过程;

不知道有没有正确理解搂主的意思


我的意思是:我认为对象间的相互调用也是对象间的依赖关系的一种实现方式,但spring文档里面却说: 对象之间的依赖关系(即一起工作的其它对象)只会通过以下几种方式来实现:构造器的参数、工厂方法的参数,或给由构造函数或者工厂方法创建的对象设置属性,让我不理解。
  现在明白了,感觉这里所说的依赖注入背后的基本原理应该是Spring依赖注入的实现方式,即Spring的依赖注入是通过构造器的参数、工厂方法的参数,或给由构造函数或者工厂方法创建的对象设置属性的方式来实现。不知道这样理解对不对。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值