Dagger 2将依赖注入片段?匕首堆?

时间:2017-02-15 15:27:56

标签: android dependency-injection dagger-2

我在我的应用程序中使用Dagger 2 DI框架。目前,我正在为我的身份验证活动创建目录结构。

我有一个AppComponent和AppModule,它们的作用域是ApplicationScope注释。

对于我有@ActivityScope的个人活动。我有一个名为AuthenticationActivity的活动,它的唯一工作是提供两个片段 - LoginFragment和SignUpFragment,这样用户可以刷一个viewpager来在两者之间进行切换。现在,我的问题是我应该如何安排我的匕首堆叠?我是否需要为LoginFragment创建一个subComponent,例如

@Subcomponent(modules{})
public interface AuthenticationComponent{
    LoginComponent plus(LoginModule module);
}

我的LoginComponent看起来像这样:

@Subcomponent(modules{LoginModule.class})
public interface LoginComponent{
    void inject(LoginFragment fragment);
}

我的应用组件看起来很相似:

@Component(modules={AppModule.class})
public interface AppComponent{
    AuthenticationComponent plus(AuthenticationModule module);
}

我只是想知道是否有更优雅的方式(例如避免创建AuthenticationComponent)。

1 个答案:

答案 0 :(得分:1)

我认为两个范围(ApplicationScopeActivityScope)就足够了。只需通过特定的活动组件注入您的片段。