Sobes.tech
Junior — Middle

Какви подходи и реализации на патърна 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()