Skip to content

Commit c5fff67

Browse files
committed
update
1 parent 376ae0b commit c5fff67

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

Dagger2/5.Dagger2Lay和Provider(五).md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,32 @@ class DripCoffeeModule {
218218

219219

220220

221+
`@Binds``@Provides`
222+
---
223+
224+
相信大家经常会使用`@Provides`来在`Module`里面提供需要注入对象的构造, 但从来没有用过`@Binds`.
221225

226+
如果我们需要注入一个接口的实现,我们常常会这么做:
227+
```java
228+
@Module
229+
public class HomeModule {
230+
231+
@Provides
232+
public HomePresenter providesHomePresenter(){
233+
return new HomePresenterImp();
234+
}
235+
}
236+
```
237+
其实这样的代码可以通过`@Binds`简化为:
238+
```java
239+
@Module
240+
public abstract class HomeModule {
241+
242+
@Binds
243+
public abstract HomePresenter bindHomePresenter(HomePresenterImp homePresenterImp);
244+
}
245+
```
246+
同时你需要将你的`Module`改为`abstract`即可,但是要注意这两个不能共存于一个`Module`,是不是很简单.
222247

223248

224249

0 commit comments

Comments
 (0)