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();
    }
}


發佈了41 篇原創文章 · 獲贊 6 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章