Sobes.tech
Middle

Mi az az MVVM architektúrális minta?

sobes.tech MI

Válasz az MI-től

MVVM (Model-View-ViewModel) egy architekturális minta, amely elválasztja a felhasználói felületet (View) és az üzleti logikát (Model) egy közbenső rétegen — ViewModelen keresztül.

Komponens Leírás Cél
Model Adatokat és üzleti szabályokat képvisel. Adatokat szolgáltat, független a View-tól és a ViewModel-től.
View Megjeleníti a felhasználói felületet. A vizualizációért és a felhasználóval való interakcióért felelős.
ViewModel Tartalmazza a megjelenítési logikát, átadja az adatokat a Modelből a View-hoz. Összeköti a View-t és a Model-t, parancsokat és tulajdonságokat tartalmaz a View számára.

MVVM-ben a View és a ViewModel közötti kapcsolat adat kötés (data binding) mechanizmusokon keresztül valósul meg. A View "feliratkozik" a ViewModel tulajdonságainak változásaira, és a ViewModel értesíti a View-t ezekről a változásokról. A felhasználói interakció a View-val (pl. gombnyomás) a ViewModel parancsának meghívását indítja el.

Előnyök:

  • Felelősségek szétválasztása: világos szétválasztás az UI, az üzleti logika és a megjelenítési logika között.
  • Tesztelhetőség: a ViewModel könnyen tesztelhető függetlenül a View-tól.
  • Jobb karbantarthatóság: a rendszer egy részében történt változások kevésbé befolyásolják a többit.
  • Fejlesztés: a frontend és backend fejlesztők párhuzamosan dolgozhatnak.

Adat kötés fogalmának példája (pseudo-kód):

// ViewModel
class CounterViewModel {
  count = 0; // megfigyelhető tulajdonság

  increment() {
    this.count++; // változás értesítésének kiváltása
  }
}

// View (egyszerűsített reprezentáció)
<button onclick="viewModel.increment()">+</button>
<span data-bind="textContent: viewModel.count"></span> // span tartalmának kötése a viewModel.count-hoz