Я создаю простое приложение и хочу использовать в нем Dagger
(я новичок в Dagger
). Он имеет три слоя: View
, ViewModel
и Repository
.
Естественно, что каждый из классов в этих слоях имеет разные зависимости и разные области действия. Взгляните на этот образец:
class SongsFragment : Fragment() {
val viewModel: SongsViewModel
}
class SongsViewModel(val songRepository: SongRepository) : ViewModel() {
}
class SongRepository(val songDao: SongDao) {
}
Экземпляр
SongsViewModel
должен существовать, пока существует SongsFragment
, и экземпляр SongRepository
должен существовать, пока существует экземпляр SongsViewModel
. (Поправьте меня, если это не очень хорошая практика)
Буду признателен за простой пример того, как использовать модули, компоненты (и, при необходимости, подкомпоненты) и области действия для достижения этой цели.