1
Mutoo 2019-03-29 10:03:00 +08:00 2
给你修改一下:逻辑(类)不创建或直接引用服务(依赖),服务以传入的形式被使用。
|
2
Mithrandir 2019-03-29 10:04:36 +08:00
阔以这么理解
|
3
vindurriel 2019-03-29 10:20:45 +08:00 via iPhone
更有意思的问题是 为什么要注入依赖
|
4
mooncakejs 2019-03-29 10:26:02 +08:00
要衣服的时候,本来要去柜子里找,现在喊一声就好,老妈会送过来,但是你只能决定衣服的类型(接口),老妈帮你决定衣服的牌子(实现)。
这里可以实现单例,你要一个对象,你弟弟也要一个对象,老妈有办法把同一个对象同时给你们,而不需要你们分别去找(new)。 |
5
airfling 2019-03-29 10:27:38 +08:00
@mooncakejs 这不就是共享对象了吗
|
6
WordTian 2019-03-29 10:31:30 +08:00 via Android
类不直接创建对象(类的变量名,方法名需遵守约定)
传入使用反射创建类对象所需的信息(类名,类中的变量值) 通过这些信息创建类的对象 |
7
demonzoo 2019-03-29 10:32:41 +08:00
@mooncakejs 兄弟二人共用一个对象?年轻人思想很前卫啊。。。
|
8
lihongjie0209 2019-03-29 10:43:46 +08:00
依赖注入是全局的一个 ioc = map<beanName, beanInstance>, 你可以不用注解进行注入, 直接引用 ioc.get(xxxx), 依赖注入的注解只是一个语法糖而已
|
9
mooncakejs 2019-03-29 10:47:06 +08:00
@demonzoo 兄弟?老爹要也给他同一个啊。
|
10
mooncakejs 2019-03-29 10:48:09 +08:00
@airfling 是共享,同时老妈还能决定 要不要给他们同一个对象或者分别一个对象。这是父母包办啊。
|
11
Inside 2019-03-29 11:19:00 +08:00
依赖注入就是我一掏粪的,你给我一勺子我能掏,给我一铲子我也能掏,只要你给个能掏粪的东西就行,你给啥我用啥。
|
12
mamahaha 2019-03-29 11:42:36 +08:00
干就完了,先上车后补票。
|
13
anofac 2019-03-29 11:43:18 +08:00
@Inside 哈哈哈,生动形象
借来拿到去公司码代码场景比喻一下,我需要一台可以码代码的电脑: new 对象就是我自己选牌子型号,甚至我自己组装(要 new 出来的对象有别的依赖需要传入时,我可以自己选择传入什么)。 依赖注入就是老板给什么我用什么,有钱的老板给我 MAC 用,没钱的老板给我渣想垃圾台式用。甚至延伸一下老板可以做到,效益好的时候给我用 MAC,效益不好的时候把 MAC 拿去卖了(对象回收),给我换个渣想。。。(各种代理技术) |
14
kaneg 2019-03-29 11:53:49 +08:00 via iPhone
依赖注入本质上是思维的转变:不要管对象从哪里来,只管使用便是。
|
15
ooee2016 2019-03-29 12:11:56 +08:00
电脑主板?
|
16
zhazi 2019-04-08 16:47:59 +08:00 via Android
依赖注入的思想是面向接口编程,使用其 hight level 的抽象而不依靠 low level 的实现,达到松耦合的目的,楼上这群都在说什么呢,重学几遍面向对象再来回答吧
|