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