Sobes.tech
Middle

Čo je to architektonický vzor MVVM?

sobes.tech AI

Odpoveď od AI

MVVM (Model-View-ViewModel) je architektonický vzor, ktorý oddelí používateľské rozhranie (View) od podnikovej logiky (Model) prostredníctvom medzičlánku — ViewModel.

Zložka Popis Účel
Model Predstavuje údaje a podnikové pravidlá. Poskytuje údaje, nezávisle od View a ViewModel.
View Zobrazuje používateľské rozhranie. Zodpovedá za vizualizáciu a interakciu s používateľom.
ViewModel Obsahuje logiku prezentácie, prenáša údaje z Modelu do View. Spája View a Model, obsahuje príkazy a vlastnosti pre View.

V MVVM je spojenie medzi View a ViewModel zabezpečené prostredníctvom mechanizmov viazania dát (data binding). View "sa prihlási" na zmeny vlastností vo ViewModel a ViewModel upozorňuje View na tieto zmeny. Interakcia používateľa s View (napríklad kliknutie na tlačidlo) iniciuje volanie príkazu vo ViewModel.

Výhody:

  • Rozdelenie zodpovedností: jasné rozdelenie medzi UI, podnikovou logikou a logikou prezentácie.
  • Testovateľnosť: ViewModel je ľahko testovateľný nezávisle od View.
  • Zlepšená údržba: zmeny v jednej časti systému majú menší vplyv na ostatné.
  • Vývoj: frontendoví a backendoví vývojári môžu pracovať paralelne.

Príklad konceptu viazania dát (pseudo-kód):

// ViewModel
class CounterViewModel {
  count = 0; // sledovateľná vlastnosť

  increment() {
    this.count++; // spustí oznámenie o zmene
  }
}

// View (zjednodušená reprezentácia)
<button onclick="viewModel.increment()">+</button>
<span data-bind="textContent: viewModel.count"></span> // viaže obsah span na viewModel.count