Я использую каркас Dagger 2 DI в своем приложении. В настоящее время я создаю структуру каталогов для своей активности аутентификации.Кинжал 2 вводит зависимости в Фрагмент? Столб кинжала?
У меня есть AppComponent и AppModule, которые охвачены аннотацией ApplicationScope.
Для отдельных видов деятельности у меня есть @ActivityScope. У меня есть одно действие под названием AuthenticationActivity, и его единственная задача - представить два фрагмента - LoginFragment и SignUpFragment, чтобы пользователь мог перетащить viewpager для изменения между ними. Теперь, мой вопрос заключается в том, как я должен расположить свой кинжал?
@Subcomponent(modules{LoginModule.class})
public interface LoginComponent{
void inject(LoginFragment fragment);
}
Мое приложение компонент будет выглядеть::
@Component(modules={AppModule.class})
public interface AppComponent{
AuthenticationComponent plus(AuthenticationModule module);
}
Мне нужно создать подкомпонентой для LoginFragment, например, как этот
@Subcomponent(modules{})
public interface AuthenticationComponent{
LoginComponent plus(LoginModule module);
}
И мой LoginComponent может выглядеть так, что ли
Мне просто интересно, есть ли более элегантный способ (например, избегать создания AuthenticationComponent) Спасибо заранее! Любые советы будут высоко оценены!
Вы можете. Вам не обязательно. Черт, если бы вы хотели, чтобы у вас мог быть только один глобальный компонент, который все делает. Вопрос в том, какую ценность, по вашему мнению, вы бы получили, имея подкомпонент? Я не вижу здесь многого. –
@GabeSechan Спасибо за ваш комментарий. Я не думаю, что я ввожу что-нибудь в AuthenticationActivity. Целью этого действия является попытка отобразить эти два фрагмента с помощью viewpager. Поэтому я предполагаю, что не получаю никакого значения наличия подкомпонента authenticationActivity. –
@GabeSechan Я догадываюсь, что у меня было много вложенных подкомпонентов, и я автоматически подумал, что я делаю это неправильно (впервые использовал Dagger 2 в большом проекте) –