Sobes.tech
Junior

Mis on MVC arhitektuurimuster?

sobes.tech AI

Vastus AI-lt

MVC (Mudeli-Vaatenõu-Kontroller) — see on arhitektuurimuster, mis jagab rakenduse kolme omavahel seotud komponendi vahel:

  • Mudeli (Model): Esindab rakenduse andmeid ja äriloogikat. Vastutab andmete salvestamise, saamise, muutmise ja valideerimise eest. Ei sisalda kasutajaliidese loogikat.

  • Vaatenõu (View): Vastutab andmete kuvamise eest kasutajale. Saab andmeid Mudelist ja visualiseerib neid. Ei sisalda äriloogikat ning ei suhtle otse Mudeliga.

  • Kontroller (Controller): Toimib vahendajana Mudeli ja Vaatenõu vahel. Töötleb kasutaja päringuid, suhtleb Mudeliga andmete saamiseks/muutmiseks ning valib Vaatenõu tulemuste kuvamiseks.

Koostoime:

  1. Kasutaja suhtleb Vaatenõuga.
  2. Vaatenõu edastab päringu Kontrollerile.
  3. Kontroller töötleb päringu, suhtleb Mudeliga andmete saamiseks või uuendamiseks.
  4. Mudel teeb vajalikud toimingud andmetega.
  5. Kontroller saab tulemuse Mudelilt.
  6. Kontroller valib sobiva Vaatenõu ja edastab sellele andmed kuvamiseks.
  7. Vaatenõu kuvab andmed kasutajale.

Eelised:

  • Komponentide vastutuse jaotamine.
  • Koodi hooldatavuse ja laiendatavuse parandamine.
  • Komponentide korduvkasutamise võimalus.
  • Eelnevalt ja tagantpoolt töötavate osade (Frontend ja Backend) töö eraldatus (saab töötada View/Controller ja Modeliga sõltumatult).
  • Parandatud testimisvõimalused (saab testida Mudelit, Vaatenõu ja Kontrollerit eraldi).

Puudused:

  • Võib olla lihtsate rakenduste jaoks liig.
  • Failide ja kihtide arvu suurenemine.
  • Funktsiooni täpse asukoha määramise keerukus.

MVC on sageli kasutusel veebiarenduses, eriti backend-raamistikutes (Ruby on Rails, Django, Spring MVC), kuid variatsioonidega ka frontendis (näiteks vanades Angulari versioonides või koodi organiseerimise kontseptsioonina). Puhas vorm on tavaliselt MVP või MVVM mustrid.