We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 376ae0b commit c5fff67Copy full SHA for c5fff67
Dagger2/5.Dagger2Lay和Provider(五).md
@@ -218,7 +218,32 @@ class DripCoffeeModule {
218
219
220
221
+`@Binds`与`@Provides`
222
+---
223
+
224
+相信大家经常会使用`@Provides`来在`Module`里面提供需要注入对象的构造, 但从来没有用过`@Binds`.
225
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
239
240
+public abstract class HomeModule {
241
242
+ @Binds
243
+ public abstract HomePresenter bindHomePresenter(HomePresenterImp homePresenterImp);
244
245
246
+同时你需要将你的`Module`改为`abstract`即可,但是要注意这两个不能共存于一个`Module`,是不是很简单.
247
248
249
0 commit comments