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:
- Kasutaja suhtleb Vaatenõuga.
- Vaatenõu edastab päringu Kontrollerile.
- Kontroller töötleb päringu, suhtleb Mudeliga andmete saamiseks või uuendamiseks.
- Mudel teeb vajalikud toimingud andmetega.
- Kontroller saab tulemuse Mudelilt.
- Kontroller valib sobiva Vaatenõu ja edastab sellele andmed kuvamiseks.
- 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.