Ez az anyag a "Bevezetés a vállalkozásfejlesztésbe" sorozat része. Korábbi cikkek:
- a hálózatépítésről
- a szoftver architektúráról
- a HTTP/HTTPS-ről
- a Maven alapjairól
- a szervletekről (egy egyszerű webalkalmazás írása)
- servlet konténerekről
Az MVC története
Az MVC mögött meghúzódó ötleteket Trygve Reenskaug fogalmazta meg, miközben a Xerox PARC-nál dolgozott az 1970-es évek végén. Akkoriban a számítógéppel való munkavégzés megkövetelte a diplomát és a terjedelmes dokumentáció folyamatos tanulmányozását. A Reenskaug egy nagyon erős fejlesztőcsoporttal közösen megoldott feladat az volt, hogy egyszerűsítse a hétköznapi felhasználó számítógéppel való interakcióját. Olyan eszközöket kellett létrehozni, amelyek egyrészt rendkívül egyszerűek és érthetőek lennének, másrészt lehetővé teszik a számítógépek, összetett alkalmazások vezérlését. Reenskaug egy olyan csapaton dolgozott, amely Alan Kay vezetésével egy laptopot fejlesztett ki „minden életkorú gyermekek számára” – a Dynabookot, valamint a SmallTalk nyelvet. Ekkor határozták meg a barátságos felület fogalmait. Sok tekintetben, Reenskaug és csapata által végzett munka befolyásolta az IT szféra fejlődését. Itt van egy érdekes tény, amely nem vonatkozik közvetlenül az MVC-re, de jól szemlélteti e fejlesztések jelentőségét. Alan Kaymondott, "Amikor először eljutottam az Apple-hez, ami 84-ben volt, a Mac már megjelent, és a Newsweek megkeresett, és megkérdezte, mit gondolok a Macről. Azt mondtam: "Nos, a Mac az első személyi számítógép, amely elég jó ahhoz, hogy kritizálják. Szóval, miután 2007-ben bejelentette az iPhone-t, felhozta nekem, és átadta, és azt mondta: "Alan, ez elég jó ahhoz, hogy kritizálják?" És azt mondtam: "Steve, csináld akkora, mint egy táblagép, és uralni fogod a világot." 3 év után, 2010. január 27-én az Apple bemutatta a 9,7 hüvelykes átlójú iPadet. Más szavakkal, Steve Jobs szinte pontosan követte Alan Kay tanácsát. Reenskaug projektje 10 évig tartott. De az első publikáció az MVC-ről újabb 10 év után látott napvilágot. Martin Fowler, számos könyv és cikk szerzője a szoftverarchitektúráról, megemlíti, hogy az MVC-t a Smalltalk működő verziójával tanulta. Mivel az MVC-ről az eredeti forrásból sokáig nem volt információ, és több más okból is, ennek a fogalomnak nagyszámú különböző értelmezése jelent meg. Ennek eredményeként sokan az MVC-t tervezési mintának tekintik. Ritkábban az MVC-t összetett mintának vagy több minta kombinációjának nevezik, amelyek együttesen alkotnak összetett alkalmazásokat. De, ahogy korábban említettük, az MVC valójában elsősorban építészeti ötletek/elvek/megközelítések halmaza, amelyek különféle minták segítségével többféleképpen is megvalósíthatók... Ezután az MVC koncepcióba ágyazott főbb ötleteket tekintjük át. és több más okból is nagyszámú különböző értelmezése jelent meg ennek a fogalomnak. Ennek eredményeként sokan az MVC-t tervezési mintának tekintik. Ritkábban az MVC-t összetett mintának vagy több minta kombinációjának nevezik, amelyek együttesen alkotnak összetett alkalmazásokat. De, ahogy korábban említettük, az MVC valójában elsősorban építészeti ötletek/elvek/megközelítések halmaza, amelyek különféle minták segítségével többféleképpen is megvalósíthatók... Ezután az MVC koncepcióba ágyazott főbb ötleteket tekintjük át. és több más okból is nagyszámú különböző értelmezése jelent meg ennek a fogalomnak. Ennek eredményeként sokan az MVC-t tervezési mintának tekintik. Ritkábban az MVC-t összetett mintának vagy több minta kombinációjának nevezik, amelyek együttesen alkotnak összetett alkalmazásokat. De, ahogy korábban említettük, az MVC valójában elsősorban építészeti ötletek/elvek/megközelítések halmaza, amelyek különféle minták segítségével többféleképpen is megvalósíthatók... Ezután az MVC koncepcióba ágyazott főbb ötleteket tekintjük át.MVC: Alapötletek és alapelvek
- A VC olyan építészeti ötletek és alapelvek halmaza, amelyek felhasználói felülettel rendelkező komplex információs rendszerek felépítéséhez szükségesek
- Az MVC egy rövidítés, ami a következőt jelenti: Model-View-Controller
1. lépés: Válassza le az alkalmazás üzleti logikáját a felhasználói felületről
Az MVC alapötlete, hogy bármely felhasználói felülettel rendelkező alkalmazás 2 modulra osztható: az üzleti logika megvalósításáért felelős modulra és a felhasználói felületre. Az első modul megvalósítja az alkalmazás fő funkcióit. Ez a modul a rendszer magja, ahol az alkalmazás tartománymodelljét implementálják. Az MVC paradigmában ez a modul az M betű, azaz a modell. A második modul megvalósítja a teljes felhasználói felületet, beleértve az adatok felhasználó számára történő megjelenítésének és az alkalmazással való felhasználói interakció kezelésének logikáját. Ennek a szétválasztásnak a fő célja annak biztosítása, hogy a rendszer magja (MVC terminológiában a "modell") függetlenül fejleszthető és tesztelhető legyen. A szétválasztás után az alkalmazás architektúrája így néz ki:2. lépés Használja a megfigyelő mintát a modell még függetlenebbé tételéhez és a felhasználói felületek szinkronizálásához
2 célunk van:- Érjen el még nagyobb függetlenséget a modell számára
- A felhasználói felületek szinkronizálása
3. lépés Válassza szét az interfészt nézetből és vezérlőből
Folytatjuk az alkalmazás modulokra osztását, de most a hierarchia alacsonyabb szintjén. Ebben a lépésben a felhasználói felület (amelyet az 1. lépésben külön modulra osztottunk) egy nézetre és egy vezérlőre van felosztva. Nehéz szigorú határvonalat húzni a nézet és a vezérlő között. Ha azt mondjuk, hogy a nézet az, amit a felhasználó lát, és a vezérlő az a mechanizmus, amely lehetővé teszi a felhasználó számára, hogy interakcióba lépjen a rendszerrel, akkor rámutathat egy ellentmondásra. A vezérlőelemek, például a weboldalon lévő gombok vagy a telefon képernyőjén lévő virtuális billentyűzet alapvetően a vezérlő részét képezik. De ugyanúgy láthatóak a felhasználó számára, mint a nézet bármely része. Amiről itt valójában beszélünk, az a funkcionális szétválasztás. A felhasználói felület fő feladata, hogy megkönnyítse a felhasználó interakcióját a rendszerrel.- kiadja és kényelmesen megjeleníti a rendszerinformációkat a felhasználó számára
- adja meg a felhasználói adatokat és parancsokat (közölje a rendszerrel)
- Az MVC paradigma elvei szerint egy rendszert modulokra kell osztani.
- A legfontosabb és független modul a modell legyen.
- A modell a rendszer magja. Lehetővé kell tenni a felhasználói felülettől függetlenül történő fejlesztését és tesztelését.
- Ennek eléréséhez a felosztás első lépésében a rendszert modellre és felhasználói felületre kell felosztanunk.
- Ezután a megfigyelő minta segítségével erősítjük a modell függetlenségét és szinkronizáljuk a felhasználói felületeket.
- A harmadik lépés a felhasználói felület felosztása vezérlőre és nézetre.
- Minden, ami a felhasználói adatok rendszerbe történő fogadásához szükséges, a vezérlőben található.
- A nézetben minden szükséges információ a felhasználóhoz való eljuttatásához.
GO TO FULL VERSION