Milyen megközelítéseket és megvalósításokat ismersz a ViewModel mintára?
sobes.tech MI
Válasz az MI-től
Az Androidban a ViewModel minta az UI-adatok tárolására és kezelésére szolgál, figyelembe véve az olyan komponensek életciklusát, mint az Activity vagy Fragment. Fő megközelítések és megvalósítások:
-
Android Architecture Components ViewModel — egy osztály az androidx.lifecycle könyvtárból, amely lehetővé teszi az adatok megőrzését az Activity/Fragment újraalkotásakor (például képernyőforgatáskor). A ViewModel addig él, amíg a UI komponens él.
-
ViewModel LiveData-val — gyakran a ViewModel tartalmaz LiveData-t, hogy automatikusan frissítse a UI-t az adatok változásakor.
-
Egyedi ViewModel — saját ViewModel mintát valósíthat meg, elválasztva a logikát és az adatokat a UI-tól, de AndroidX nélkül, például tiszta MVVM-ben.
Példa a standard ViewModel LiveData-val való használatára:
class MyViewModel : ViewModel() {
private val _data = MutableLiveData<String>()
val data: LiveData<String> = _data
fun loadData() {
// adatok betöltése, például egy repository-ból
_data.value = "Példa adat"
}
}
// Activity vagy Fragment
val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)
viewModel.data.observe(this) { value ->
textView.text = value
}
viewModel.loadData()