Как добавить несколько модульных зависимостей в компоненты Dagger-2? - PullRequest
0 голосов
/ 05 октября 2018

В модулях моего корневого компонента я регулярно использую компоненты, чтобы возвращать / предоставлять отдельные графы объектов в моем контейнере. Каков наилучший способ инициировать графы компонентов / объектов с существующими зависимостями модулей?
Я чувствую, что должен использовать субкомпоненты здесь, но понятия не имею, как.Предпочтительно я хочу запустить компонент со всеми компонентами, которые доступны до этого момента.В настоящее время я передаю каждый экземпляр с помощью механизма Builder и @BindsInstance сборщику компонентов, что кажется довольно неловким, но я не знаю лучшего дизайна:

Root component

@Component(includes = TradeModule.class)
public interface RootComponent{
   ...
   ...
}

Мой модуль

@Module
public class TradeModule{

@Provides
@Singleton
//this is one example dependency that I want to inject in the component below
TimeframePermissionEvaluator timeframePermissionEvaluator() {
    return new TimeframePermissionEvaluator();
}

@Provides
@Singleton
TradeModel tradeModel(TradeModelComponent.Builder builder, //assume builder is available
                      TimeframePermissionEvaluator tpe) {
    return builder
         //here I inject the dependency into the component. What's a more elegant 
         //way to do this? Imagine I have to inject hundreds of dependencies of TradeModule
        .timeframePermissionEvaluator(tpe) 
        .build()
        .createTradeModel();
}
}
...