#android #kotlin #mvvm
Вопрос:
Прямо сейчас я следую учебнику, в котором я разрабатываю простое игровое приложение, пытаясь понять и использовать архитектуру приложения MVVM. В моем классе ViewModel у меня есть поле, которое содержит счет игрока.
Переменная оценки объявляется следующим образом:
private val _score = MutableLiveData<Int>()
val score: LiveData<Int>
get() = _score
Теперь, в моем классе контроллера пользовательского интерфейса, я наблюдаю такую оценку:
viewModel.score.observe(this, Observer { newScore ->
binding.scoreText.text = newScore.toString()
})
Итак, мой вопрос в том, зачем мне нужна вторая декларация оценки? Разве я не могу просто взять
val score = MutableLiveData<Int>()
и наблюдать за этим, как описано выше? Я пытался, и это работает.
Ответ №1:
Это сработает. Смысл этого в том, чтобы убедиться, что изменения в этой переменной происходят только из одного места, являющегося вашей моделью представления. Это просто шаблон, которому следовали люди, чтобы облегчить вам отладку и убедиться, что состояние вашего приложения/представления правильное. Один источник из Google я нашел здесь, хотя я уверен, что есть еще много других