в принципе на кодогенерации и делает, собирая по разарозненным кусочкам все составляющие), и теперь ума не приложу, в каком случае даггер даст реальный профит по сравнению с этим. Чего такого он дает, чего не даст «ручная настройка»?
Пока что я заметил, что на вопрос «а кто под этим интерфейсом был дан в зависимость этому классу» ответ находится моментально, особенно если у интерфейса несколько реализаций и приходилось раньше использовать @Named для различения куда и кого положили…
У меня сейчас это выглядит примерно так:
…
@Override
public void inject(MapFragment mapFragment) {
mapFragment.setMapViewModel(
ViewModelProviders.of(
mapFragment,
new ViewModelFactory<MapViewModel>(
new MapViewModelImpl(
new HeatMapUseCaseImpl(
new HeatMapGatewayImpl(apiService)
)
)
)).get(MapViewModelImpl.class)
);
}
…
ИМХО проще некуда…
вообще посмотри на альтернативы даггеру (Toothpick, если на котлине то Kodein, Koin) может больше зайдет и не придется пилить свои велосипеды
Обсуждают сегодня