依赖注入能不能理解为:类不创建对象,对象以传入的形式来使用 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wythechen
V2EX    Java

依赖注入能不能理解为:类不创建对象,对象以传入的形式来使用

  •  1
     
  •   wythechen 2019 年 3 月 29 日 via Android 4195 次点击
    这是一个创建于 2480 天前的主题,其中的信息可能已经有所发展或是发生改变。
    16 条回复    2019-04-08 16:47:59 +08:00
    Mutoo
        1
    Mutoo  
       2019 年 3 月 29 日   2
    给你修改一下:逻辑(类)不创建或直接引用服务(依赖),服务以传入的形式被使用。
    Mithrandir
        2
    Mithrandir  
       2019 年 3 月 29 日
    阔以这么理解
    vindurriel
        3
    vindurriel  
       2019 年 3 月 29 日 via iPhone
    更有意思的问题是 为什么要注入依赖
    mooncakejs
        4
    mooncakejs  
       2019 年 3 月 29 日
    要衣服的时候,本来要去柜子里找,现在喊一声就好,老妈会送过来,但是你只能决定衣服的类型(接口),老妈帮你决定衣服的牌子(实现)。
    这里可以实现单例,你要一个对象,你弟弟也要一个对象,老妈有办法把同一个对象同时给你们,而不需要你们分别去找(new)。
    airfling
        5
    airfling  
       2019 年 3 月 29 日
    @mooncakejs 这不就是共享对象了吗
    WordTian
        6
    WordTian  
       2019 年 3 月 29 日 via Android
    类不直接创建对象(类的变量名,方法名需遵守约定)
    传入使用反射创建类对象所需的信息(类名,类中的变量值)
    通过这些信息创建类的对象
    demonzoo
        7
    demonzoo  
       2019 年 3 月 29 日
    @mooncakejs 兄弟二人共用一个对象?年轻人思想很前卫啊。。。
    lihongjie0209
        8
    lihongjie0209  
       2019 年 3 月 29 日
    依赖注入是全局的一个 ioc = map<beanName, beanInstance>, 你可以不用注解进行注入, 直接引用 ioc.get(xxxx), 依赖注入的注解只是一个语法糖而已
    mooncakejs
        9
    mooncakejs  
       2019 年 3 月 29 日
    @demonzoo 兄弟?老爹要也给他同一个啊。
    mooncakejs
        10
    mooncakejs  
       2019 年 3 月 29 日
    @airfling 是共享,同时老妈还能决定 要不要给他们同一个对象或者分别一个对象。这是父母包办啊。
    Inside
        11
    Inside  
       2019 年 3 月 29 日
    依赖注入就是我一掏粪的,你给我一勺子我能掏,给我一铲子我也能掏,只要你给个能掏粪的东西就行,你给啥我用啥。
    mamahaha
        12
    mamahaha  
       2019 年 3 月 29 日
    干就完了,先上车后补票。
    anofac
        13
    anofac  
       2019 年 3 月 29 日
    @Inside 哈哈哈,生动形象

    借来拿到去公司码代码场景比喻一下,我需要一台可以码代码的电脑:
    new 对象就是我自己选牌子型号,甚至我自己组装(要 new 出来的对象有别的依赖需要传入时,我可以自己选择传入什么)。
    依赖注入就是老板给什么我用什么,有钱的老板给我 MAC 用,没钱的老板给我渣想垃圾台式用。甚至延伸一下老板可以做到,效益好的时候给我用 MAC,效益不好的时候把 MAC 拿去卖了(对象回收),给我换个渣想。。。(各种代理技术)
    kaneg
        14
    kaneg  
       2019 年 3 月 29 日 via iPhone
    依赖注入本质上是思维的转变:不要管对象从哪里来,只管使用便是。
    ooee2016
        15
    ooee2016  
       2019 年 3 月 29 日
    电脑主板?
    zhazi
        16
    zhazi  
       2019 年 4 月 8 日 via Android
    依赖注入的思想是面向接口编程,使用其 hight level 的抽象而不依靠 low level 的实现,达到松耦合的目的,楼上这群都在说什么呢,重学几遍面向对象再来回答吧
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2680 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 03:16 PVG 11:16 LAX 19:16 JFK 22:16
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86