Что плохого в том, чтобы обернуть NavHostController в класс-оболочку и внедрить его в систему внедрения зависимостей?Android

Форум для тех, кто программирует под Android
Anonymous
Что плохого в том, чтобы обернуть NavHostController в класс-оболочку и внедрить его в систему внедрения зависимостей?

Сообщение Anonymous »

Предположим, у меня есть класс

Код: Выделить всё

data class Navigator(val navController: NavHostController)
И я впрыскиваю его в монету/рукоять.

Код: Выделить всё

class MyViewModel(private val navigator: Navigator): ViewModel(){} // using koin
Преимущество –
Предположим, у меня есть

Код: Выделить всё

@Composable
fun HomeScreen(toSettings: () -> Unit)

fun NavGraphBuilder.home(toSettings: () -> Unit)

NavHost() {
home() { /* navigation logic */ }
}
и я тоже хочу перейти на экран профиля. Так что теперь мне придется поменять три места

Код: Выделить всё

@Composable
fun HomeScreen(toSettings: () -> Unit, toProfile: () -> Unit)

fun NavGraphBuilder.home(toSettings: () -> Unit, toProfile: () -> Unit)

NavHost() {
home(toSettings = {}, toProfile = {})
}
но если бы у меня был доступ в моей ViewModel, мне бы это не понадобилось. Я такого подхода не видел нигде. Что-то здесь не так

Подробнее здесь: https://stackoverflow.com/questions/786 ... jecting-it

Вернуться в «Android»