Dagger2模块化讲解--第三章

啥是模块化?看图


看到没是不是与很多module呀!这就是模块,上一章节说了,找对象会从模块找

举个例子

Teacher对象构建需要Studnet和StudntClass

Teacher类

public class Teacher {
    public Student student;
    public StudentClass studentClass;

    @Inject
    public Teacher(Student student, StudentClass studentClass) {
        this.student = student;
        this.studentClass = studentClass;
    }
}

Student 和 StudentClass类

public class Student {

}

public class StudentClass {
}

根据上面的情况,我们必须在Module中告诉Studnet和StudentClass如何构建,这时候我建立了2个Module

@Module
public class StudentModule {

    @Provides
    public Student provideStudent(){
        return new Student();
    }
}

@Module
public class StudentClassModule {
    @Provides
    public StudentClass providesStudentClass(){
        return new StudentClass();
    }
}

一个Module提供Student对象,一个提供StudnetClass对象

如何联系起来了?

方法1:在Componert的modules中配置多个

@Component(modules = {StudentModule.class,StudentClass.class})
public interface TeacherCompenent {
    void inject(MainActivity mainActivity);
}

方法2:不在Componert配置,记得把Componert换回来,在任意一个Modules导入一个,原理就相当于一个合并吧

@Module(includes = {StudentClassModule.class})
public class StudentModule {

    @Provides
    public Student provideStudent(){
        return new Student();
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值