Ответ
MVVM (Model-View-ViewModel) — это архитектурный паттерн, который разделяет логику приложения на три компонента:
- Model — содержит бизнес-логику и данные.
- View — отображает UI и передает пользовательские действия во ViewModel.
- ViewModel — промежуточный слой, преобразующий данные Model для View и управляющий состоянием UI.
Особенности:
- Data Binding — уменьшает boilerplate-код, связывая View и ViewModel через Observable поля.
- Lifecycle-aware — ViewModel сохраняется при повороте экрана, избегая утечек памяти.
- Разделение ответственности — UI логика отделена от бизнес-логики, что упрощает тестирование.
Пример с LiveData:
class MyViewModel : ViewModel() {
private val _data = MutableLiveData<String>()
val data: LiveData<String> = _data
fun loadData() {
_data.value = "Hello MVVM!"
}
}
// Во View (Activity/Fragment):
viewModel.data.observe(this) { value ->
textView.text = value
}