啥是模塊化?看圖
看到沒是不是與很多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(); } }