Ответ
MVVM (Model-View-ViewModel) — это архитектурный паттерн, разделяющий приложение на три компонента:
- Model — содержит бизнес-логику и данные.
- View — отображает UI и обрабатывает пользовательские события.
- ViewModel — промежуточный слой, преобразующий данные Model для View и управляющий её состоянием.
Преимущества:
- Четкое разделение ответственности.
- Упрощает тестирование (ViewModel не зависит от View).
- Поддержка Data Binding (например, в Android с
LiveDataилиStateFlow).
Пример (Kotlin + ViewModel):
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) { text ->
textView.text = text
}