Назад к вопросам
Яндекс
Junior — Middle
70
Можете объяснить, как реализовать архитектурный паттерн Model-View-ViewModel и какие его основные компоненты?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Архитектурный паттерн Model-View-ViewModel (MVVM) разделяет логику приложения на три основных компонента:
- Model — отвечает за работу с данными и бизнес-логику. Это могут быть базы данных, сетевые запросы, репозитории.
- View — UI-компоненты (активити, фрагменты), которые отображают данные и реагируют на действия пользователя.
- ViewModel — посредник между Model и View. Он содержит логику представления, подготавливает данные для отображения и обрабатывает пользовательские события.
ViewModel обычно использует Observable объекты (например, LiveData в Android), чтобы View могла подписываться на изменения данных и автоматически обновляться.
Пример на Kotlin с использованием LiveData:
class MyViewModel : ViewModel() {
private val _data = MutableLiveData<String>()
val data: LiveData<String> = _data
fun loadData() {
// Получаем данные из Model (например, репозитория)
_data.value = "Привет, MVVM!"
}
}
// В Activity или Fragment
viewModel.data.observe(this) { value ->
textView.text = value
}