Какви подходи и реализации на патърна ViewModel познаваш?
sobes.tech AI
Отговор от AI
Моделът ViewModel в Android се използва за съхраняване и управление на данни на потребителския интерфейс, като взема предвид жизнения цикъл на компонентите като Activity или Fragment. Основни подходи и реализации:
-
Android Architecture Components ViewModel — клас от библиотеката androidx.lifecycle, който позволява запазване на данните при повторно създаване на Activity/Fragment (например при завъртане на екрана). ViewModel живее докато живее UI компонентът.
-
ViewModel с LiveData — често, ViewModel съдържа LiveData, за да актуализира автоматично UI-то при промяна на данните.
-
Персонализиран ViewModel — можете да реализирате собствен модел ViewModel, отделяйки логиката и данните от UI, но без използване на AndroidX, например в чист MVVM.
Пример за използване на стандартен ViewModel с LiveData:
class MyViewModel : ViewModel() {
private val _data = MutableLiveData<String>()
val data: LiveData<String> = _data
fun loadData() {
// зареждане на данни, например от репозитори
_data.value = "Примерни данни"
}
}
// В Activity или Fragment
val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)
viewModel.data.observe(this) { value ->
textView.text = value
}
viewModel.loadData()