白话dagger2

匕首

dagger的意思是匕首

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

庖丁解牛

假设你有一个对象:牛

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

模块对象

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

利用dagger进行依赖管理

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

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

分析

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

三方在dagger中的表现

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


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


  3. 需求方


你可能感兴趣的:(白话dagger2)