Я использую ПОДХОД предоставить модули для Dagger, описанных в ответ на этот вопрос Android Customize Workflow for Product FlavorsЛучшая инъекция зависимости кинжала на основе типа сборки и аромата?
Наш подход немного отличается - мы Modules
в debug
типа сборки в src/debug/java
и release
типа сборки в src/release/java
. Наш основной модуль называется ApplicationModule
, он включает в себя все остальные.
Modules
в src/debug/java
предоставляет некоторые пользовательские настройки для отладки, регистрации и т. Д. И переопределяет ApplcationModule
.
Теперь у нас есть потребность в пользовательском поведении, основанном на вкусе приложения.
Что было бы правильным подходом к этому?
Например, ароматизаторы от A до C должны обеспечивать индивидуальное поведение, в то время как ароматизаторы от D до F должны обеспечивать базовое поведение по умолчанию.
До сих пор я придумал такие.
- Все ароматы (не строить типов) имеет тот же класс в
src/flavorX/java/com.application.FlavorModule
- Чтобы избежать дублирования кода только ароматизаторов A до C обеспечить индивидуальное поведение, тогда как другие совершенно пустой, так что проект будет компилировать. И по умолчанию предоставляется мой модуль в
src/main/java
Есть ли лучший способ достичь такого результата? Потому что я не люблю пустой src/flavorX/java/com.application.FlavorModule
и не нравится дублирования кода ...
Глядя на ваш 'ComponentFactory', я не понимаю, почему ваша последняя строка кода не' ComponentFactory.getComponent (this) .inject (this) '. Могли бы вы объяснить? –
спасибо за нахождение. Сделал коррекцию. – FriendlyMikhail
Это может сделать это более понятным, прочитав статью: https://medium.com/@theMikhail/flavoring-your-dagger-14ab8bcef9f8 –