白话dagger2

作者: linheimx | 来源:发表于2017-02-16 10:45 被阅读107次

    匕首

    dagger的意思是匕首

    结合它所做的事情:解耦对象之间的依赖。让人很容易联想到庖丁解牛。
    这是一把锋利的匕首,可将牛身上的每个模块切开,这样不就是解耦了吗。

    庖丁解牛

    假设你有一个对象:牛

    你的牛由几个部分组成:头,脚,尾巴,肚子
    也就是说你的牛依赖于 头,脚,尾巴,肚子。

    模块对象

    解耦的好处:
    牛有以上几个部分,牛依赖这几个模块。
    现在,我们将几个模块独立出来,这样,若你不满意牛的腿(太小了),你可以随意更换其它的腿(大长腿)啦。

    利用dagger进行依赖管理

    我们可以利用dagger将牛解刨,牛的几个模块完全独立。dagger来管理这些模,对其进行拼装。

    明确的目标:
    牛需要 头,脚,尾巴,肚子

    分析

    1. 需求方:牛
    2. 提供方:需要提供 头,脚,尾巴,肚子
    3. 中介:将需求方与提供方结合在一起

    三方在dagger中的表现

    1. 提供方
      在dagger中用 @Module来描述提供方,@Provides描述具体提供什么样的东西


    2. 中介
      在dagger中用 @Component来描述中间商


    3. 需求方


    相关文章

      网友评论

      • shUID:provideDataManager(AppDataManager appDataManager)这个函数里面怎么传参的?哪里调用这个函数的呀?
      • 30d510f59682:易懂。。。。
        linheimx:写的很基础,dagger2的一些奇技淫巧都还没讲,后面会加上的:yum:

      本文标题:白话dagger2

      本文链接:https://www.haomeiwen.com/subject/byvcwttx.html