Ответ
Использование @Inject constructor в Dagger уместно, когда:
- Класс находится под твоим контролем (не из сторонней библиотеки).
- Нужен простой способ внедрения зависимостей без лишних модулей.
- Зависимость может быть создана через конструктор (нет сложной логики инициализации).
Пример:
class UserRepository @Inject constructor(
private val apiService: ApiService,
private val cache: UserCache
) { ... }
Когда НЕ использовать:
- Для классов из сторонних библиотек (лучше
@Module+@Provides). - Если нужен кастомный способ создания объекта (например, с параметрами).
- Для интерфейсов (требует привязки через
@Binds).