В некотором смысле для компонентов больше смысла находиться в модулях: они являются частными деталями реализации, которые не обязательно публикуются публично, а те, которые раскрыты , все еще могут быть перечислены как методы компоновщика в компонент напрямую. Для сравнения, вы также не можете определять методы @Provides
или @Binds
непосредственно для компонентов; они также влияют на детали реализации компонента и не обязательно видны публично.
Однако ваша точка зрения остается; по состоянию на 29 апреля 2019 года это открытый и спровоцированный вопрос (# 1463), зарегистрированный участником Google Дэвидом П. Бейкером.
Мы видим, как люди создают пустые модули, просто чтобы добавить подкомпоненты к компонентам:
[...]
Предложить добавить subcomponents
к dagger.Component
, dagger.Subcomponent
, dagger.producers.ProductionComponent
и dagger.producers.ProductionSubcomponent
.
Это концептуально упростит эти случаи и сократит шаблон, поскольку нет необходимости в пустом модуле.