Home » Programozás » MVC tervezési minta

MVC tervezési minta

Mik azok a tervezési minták ?

Úgy, ahogy az életben is a kisgyerek a szülei viselkedéséből tanul (szülői minta), a programozók is egymástól tanulnak, felhasználva munkájukban a mások által tervezett jól működő fejlesztési megoldásokat. Ezekből a megoldásokból lesznek később általánosan elfogadott minták, majd ezen minták alapján terveznek meg különböző alkalmazásokat.  A tervezési minták tehát gyakorlatilag olyan fejlesztési megoldások, amelyek a gyakorlatban már bebizonyították, hogy segítségükkel hosszútávon hatékonyan lehet komplex szoftvereket fejleszteni. Meg kell említenünk, hogy egyszerű szoftverek fejlesztésekor a tervezési minták gyakran csak elbonyolítják és megnehezítik a fejlesztés menetét, ezért csupán komplex szoftverek tervezésénél, programozásánál érdemes igénybe venni őket.

A Model View Controller (MVC) tervezési minta

Az MVC tervezési mintát  1979 -ben alkotta meg egy norvég kutató a Xerox kutatói laboratóriumában, miközben a Smalltalk nevet viselő objektum orientált programozási nyelv kifejlesztésén dolgozott. Az MVC gyorsan elterjedt és népszerűvé vált, mivel segítségével úgy írhatunk meg komplex alkalmazásokat (gyakorlatilag programozási nyelvtől függetlenül), hogy az üzleti logikát teljesen elkülöníthetjük a felhasználói felület létrehozására szolgáló kódoktól. Ez a webfejlesztés terén egy különösen hasznos dolog, ugyanis egy magára valamit is adó weblap körülbelül 3-4 évente arculatot vált, viszont ilyenkor valószínűleg nem szeretnének a weblap működésén is változtatni. Az MVC tervezési minta segítségével a weblap CMS rendszerét úgy lehet megtervezni, hogy az interakciós folyamatok módosítása nélkül, új arculatot készíthessünk a weblapnak.

Amint az alcímből is látszik, az MVC a modell, a view és a controller szavak rövidítése.  Nem nehéz kitalálni, hogy ez a három szó a tervezési minta három jól elkülöníthető részének a neve. Lássuk röviden, hogy melyik mit jelent.

Model

A model – vagy nevezhetjük üzleti logikának is – gyakorlatilag olyan algoritmusokat, adatbázis műveleteket foglal magába, amelyek a szoftver szolgáltatásainak működését írják le. Ide tartoznak olyan adatbázis műveletek, mint például a lekérdezések,  frissítések,  adatok felvitele, törlése, és minden olyan függvény, osztály, kódrészlet, amely valamilyen szinten a szoftver szolgáltatásaihoz kapcsolódik, de semmi köze nincs a vezérléshez vagy a felhasználói felülethez. Fontos megjegyezni, hogy a model kimenete csakis tiszta adat lehet (szöveg, kép, szám, logikai érték stb.).

View

A webfejlesztésben a view a weblap vagy webalkalmazás arculatát, a felhasználói felületet jelenti. A view a controlleren keresztül a modeltől, vagy közvetlenül a modeltől kapott adatokhoz egy előre meghatározott arculatot rendel. Nagyon fontos, hogy a view kizárólag a modell által szolgáltatott adatokkal dolgozhat, tehát nem szerepelhet a view részben mondjuk adatbázis lekérdezés, vagy egyéb, adatfeldolgozásra szolgáló kód. A controlleren-en keresztül a felhasználó a view segítségével különböző utasításokat küldhet a modell-nek, amely a kérésnek megfelelő adatokat fogja visszaküldeni a view-nak. Körülbelül így néz ki egy interakciós folyamat.

Controller

A controller a view és a model között helyezkedik el és a két modul között történő kommunikációért felel. A controller a view-tól utasításokat kap, majd ezeket az utasításokat “lefordítja a model nyelvére” és továbbítja annak. A modell visszaküldi a controllernek az utasítás által kért adatokat, majd a controller ezeket az adatokat továbbítja a viewnak. A controller az egyszerűség kedvéért gyakran nincs külön megvalósítva, egybeolvad a view-al.

Milyen előnyei vannak az MVC -nek a webfejlesztésben?

  • Általában a szerveroldali programozást és az arculattervezést két külön személy végzi ezért egymásra vannak utalva. Az MVC segítségével a két feladat egymástól függetlenül, párhuzamosan is elvégezhető, a végén pedig a controller segítségével össze lehet kapcsolni a két különálló részt.
  • Az arculat és az üzleti logika egymástól el van különítve, így bármelyik különállóan is módosítható.
  • Ugyanahhoz az üzleti logikához több, különböző platformon működő felhasználó felület is kapcsolható.
  • Az arculat módosításával nem ejtünk hibát az üzleti logikában

Hátrányai…

  • Alapos tervezést és komoly szakmai tudást igényel
  • A fejlesztési idő hosszabb
  • Csak komplex alkalmazások fejlesztésénél érdemes igénybe venni

Röviden ennyit szerettem volna leírni az MVC tervezési mintáról. Kérdéseket ezzel az alkalommal is hozzászólások formájában várok. :)

facebook twitter Google Buzz MySpace delicious

Szerző: Menyhárt Csaba

44 Comments to “MVC tervezési minta”
  1. Ebből írtam a szakdolgozatom :D Pár napig szenvedtem a pontos megvalósítással de teljesen megérte. Jó kis összefoglaló ;)

  2. php

  3. Őőőő… Az az “objektív orientált” inkább “objektum orientált” Nem mindegy. :) Ugyanis utóbbi létezik is.

  4. Menyhárt Csaba says:

    :) ) Köszönöm szépen a javítást ! Látszik, hogy az utóbbi időben a fotózás is foglalkoztat… :) )

Szólj hozzá!

Az alábbi kódokat használhatod: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

15 Trackbacks

  1. February 21, 2012 at 18:24:44
    trackback: Scrapeboard - abort... Hi there! This is the test comment!...
  2. February 21, 2012 at 16:14:09
    trackback: nz telephone directory - Sites You Should Check Out... http://www.ofis.getlisted.co.nz/office-partitions-auckland...
  3. February 20, 2012 at 20:19:45
    trackback: benchtops auckland - Sites You Should Check Out... http://www.cedarlite.getlisted.co.nz/joinery-auckland...
  4. February 19, 2012 at 17:28:34
    trackback: lotus tarot - Sites You Should Check Out... http://www.kiwielectricalheatpumps.co.nz/...
  5. February 17, 2012 at 19:23:07
    trackback: http://www.soniconsultants.com - Blogs ou should be reading... [...]Here is a Great Blog You Might Find Interesting that we Encourage You[...]…...
  6. February 17, 2012 at 19:03:50
    trackback: whole house water filters - Websites we think you should visit... [...]although websites we backlink to below are considerably not related to ours, we feel they are actually worth a go through, so have a look[...]…...
  7. February 17, 2012 at 18:44:32
    trackback: sell old iphone - Sites we Like…... [...] Every once in a while we choose blogs that we read. Listed below are the latest sites that we choose [...]…...
  8. February 17, 2012 at 18:24:50
    trackback: we buy iphones - Websites worth visiting... [...]here are some links to sites that we link to because we think they are worth visiting[...]…...
  9. February 17, 2012 at 15:55:48
    trackback: printable oil change coupons - Recommeneded websites... [...]Here are some of the sites we recommend for our visitors[...]…...
  10. February 17, 2012 at 05:36:05
    trackback: sobres impresos - MVC tervezési minta | sc3w... Needed to draft you a little remark to give thanks the moment again on your spectacular guidelines you've documented above. It's simply remarkably generous with you to deliver openly what many individuals would have advertised as an e-book to help ma...
  11. February 15, 2012 at 03:42:00
    trackback: trade in laptop - Links... [...]Sites of interest we have a link to[...]…...
  12. February 15, 2012 at 03:27:01
    trackback: home air purifier system - Websites we think you should visit... [...]although websites we backlink to below are considerably not related to ours, we feel they are actually worth a go through, so have a look[...]…...
  13. February 15, 2012 at 02:08:26
    trackback: air quality home - Superb website... [...]always a big fan of linking to bloggers that I love but don’t get a lot of link love from[...]…...
  14. February 15, 2012 at 01:09:42
    trackback: air purifier for dust - Sources... [...]check below, are some totally unrelated websites to ours, however, they are most trustworthy sources that we use[...]…...
  15. February 9, 2012 at 00:47:01
    trackback: marketing auckland - Sites You Should Check Out... http://www.greenvalleylodge.getlisted.co.nz/rest-homes-in-auckland...