啥是模块化?看图
看到没是不是与很多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(); } }