白话dagger2
2017-02-16 本文已影响107人
linheimx
匕首
dagger的意思是匕首
结合它所做的事情:解耦对象之间的依赖。让人很容易联想到庖丁解牛。
这是一把锋利的匕首,可将牛身上的每个模块切开,这样不就是解耦了吗。
庖丁解牛
假设你有一个对象:牛
牛你的牛由几个部分组成:头,脚,尾巴,肚子
也就是说你的牛依赖于 头,脚,尾巴,肚子。
解耦的好处:
牛有以上几个部分,牛依赖这几个模块。
现在,我们将几个模块独立出来,这样,若你不满意牛的腿(太小了),你可以随意更换其它的腿(大长腿)啦。
利用dagger进行依赖管理
我们可以利用dagger将牛解刨,牛的几个模块完全独立。dagger来管理这些模,对其进行拼装。
明确的目标:
牛需要 头,脚,尾巴,肚子
分析
- 需求方:牛
- 提供方:需要提供 头,脚,尾巴,肚子
- 中介:将需求方与提供方结合在一起
三方在dagger中的表现
-
提供方
在dagger中用 @Module来描述提供方,@Provides描述具体提供什么样的东西
-
中介
在dagger中用 @Component来描述中间商
-
需求方