Rendeld meg most a Bosszankodásmentes számítógépválasztót!
MVC, avagy a model-view-controller
Az MVC az ún. szerkezeti minták közé tartozik. A szerkezeti minta egy olyan rendezőelv, amely a teljes program szerkezetét befolyásolja.
Lássunk szerkezeti mintákra egy analógiát.
Képzeljük el a ruhásszekrényünket, ez lesz a programunk. A program rengeteg egységből (szaknyelven objektumból) áll, ahogyan a ruhásszekrény is rengeteg ruhát tud tartalmazni. A ruhásszerkrényt sokféleképpen rendezhetjük, kezdve onnan, hogy mindent össze-vissza pakolunk benne, éppen oda, ahova fér, egészen addig, míg valamilyen konkrét rendezőelv szerint határozzuk meg azt, hogy mi hova fog kerülni: pl. külön a nadrágok, külön a pólók, külön a zoknik, vagy lehetséges természetesen úgy is rendezni, hogy külön a piros ruhadarabok, külön a fehérek, külön a feketék és a zöldek. Mindkét elrendezésnek lehetnek előnyei is, hátrányai is, de a lényeg, hogy bármelyiket is használjuk, megkönnyíti egy ruhadarab megtalálását, kicserélését egy másikra…
A programot is lehetséges megírni különösebb belső struktúra nélkül (ez a spagetti-kód – az elnevezés onnan származik, hogy ha egy tál spagettiben megfogunk egy szálat, akkor jön vele az összes többi, azaz nincsenek benne külön, független részek, amiket külön lehetne kezelni, ahogyan a szekrény egy-egy polcát tudnánk).
Egy program elemeibe is lehet struktúrát vinni, ezeket határozzuk meg a szerkezeti mintákkal.
Az egyik ezek közül a model-view-controller, amely három „polcot” határoz meg a programunk alkotóelemeinek.
A model (modell) rész az, amely az adataink és a köztük lévő kapcsolat leírásával foglalkozik. A példa kedvéért mondhatjuk azt, hogy egy Excel-táblázat adatai tartoznak ebbe a részbe.
A view (nézet) rész az, amely különféle szempontokból megjeleníti a model adatait, tehát az adatokból tud táblázatot rajzolni, de tud kördiagramot, oszlopdiagramot, és mindenféle egyebet is rajzolni. A táblázatos megjelenítési forma, a kördiagram és oszlopdiagram egy-egy view.
A controller (vezérlő) pedig az a része a programnak, ami azzal foglalkozik, hogy kezelje a felhasználótól származó műveletet, és ez alapján megváltoztassa a model adatait. Pl. jobbklikk menüben lévő paranccsal töröljük a sort, aminek hatására a táblázatból is, a kördiagramból is és az oszlopdiagramból is törlődnek a sorhoz tartozó adatok.
Egy program részegységeinek csoportosításakor jól járunk, ha olyan részeket hozunk létre, melyek nem függnek kölcsönösen egymástól – mindenki mindenkitől. Minél több kapcsolatot meg tudunk spórolni, annál egyszerűbb dolgunk lesz a program változtatásakor.
A modelt nem kell megváltoztatni sem akkor, ha a view változik, sem akkor, ha a controller, amivel összességében munkát spórolunk.
Ha szeretnél megtanulni programozni, és mélységeiben érteni az MVC-t, töltsd ki tesztünket!
A 2. rész a Vastagkliens és vékonykliens témájáról szólt.
Az 1. részben a Karakterkódolásokat tettük rendbe.