Junior — Middle
Hogyan valósul meg a View és a ViewModel közötti interakció az MVVM mintában?
sobes.tech MI
Válasz az MI-től
Az MVVM (Model-View-ViewModel) mintában a View és a ViewModel közötti interakció adat kötésen (data binding) és változásértesítéseken keresztül történik.
Fő mechanizmusok:
- Data Binding — A View kapcsolódik a ViewModel nyilvános tulajdonságaihoz és parancsaihoz. Amikor a ViewModel-ben adatok változnak, a View automatikusan frissül.
- LiveData / Observable — Androidon gyakran használnak LiveData-t vagy más megfigyelhető objektumokat, hogy a ViewModel értesítse a View-t a változásokról.
- Parancsok (Commands) — A ViewModel parancsokat biztosít, amelyeket a View hív meg a felhasználói interakció során (pl. gombnyomás).
Kotlin példával LiveData:
class MyViewModel : ViewModel() {
val text = MutableLiveData<String>()
fun updateText(newText: String) {
text.value = newText
}
}
// Activity vagy Fragment
viewModel.text.observe(viewLifecycleOwner) { updatedText ->
textView.text = updatedText
}
Így a ViewModel nem ismeri közvetlenül a View-t, a View pedig reagál az adatok változására, ezáltal alacsony kötöttség és könnyű tesztelhetőség biztosított.