ViewModel w MVVM

Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji

Czym jest ViewModel w MVVM?

ViewModel to część wzorca MVVM pośrednicząca między Widokiem a Modelem. Jego zadaniem jest przygotowanie danych i operacji w takiej formie, aby interfejs użytkownika mógł je łatwo wyświetlić oraz obsłużyć.

W MVVM nie powinno się umieszczać logiki aplikacji bezpośrednio w pliku widoku. Widok odpowiada głównie za wygląd, a ViewModel za stan ekranu i reakcje na akcje użytkownika.

Zadania ViewModelu

ViewModel najczęściej odpowiada za:

  • przechowywanie danych wyświetlanych w widoku,
  • udostępnianie właściwości do bindowania,
  • obsługę poleceń użytkownika, np. kliknięcia przycisku,
  • walidację danych formularza,
  • komunikację z modelem lub usługami aplikacji.

Przykład zastosowania

W aplikacji z formularzem logowania:

  • Widok zawiera pola tekstowe i przycisk „Zaloguj”,
  • ViewModel przechowuje login, hasło i metodę logowania,
  • Model może reprezentować użytkownika lub dane pobrane z bazy.

Dzięki temu wygląd formularza można zmienić bez przepisywania logiki logowania.

Dlaczego ViewModel jest ważny?

ViewModel ułatwia utrzymanie aplikacji, ponieważ rozdziela odpowiedzialności. Kod interfejsu użytkownika jest oddzielony od logiki działania programu. Dzięki temu aplikację łatwiej testować, rozwijać i modyfikować.

Najważniejsze do egzaminu

We wzorcu MVVM interfejs użytkownika i logika aplikacji są rozdzielone. ViewModel jest elementem, który łączy widok z danymi i operacjami aplikacji, ale nie powinien zawierać kodu odpowiedzialnego za wygląd kontrolek.