Sunteți pe pagina 1din 28

Introducere n MVC

MVC MODEL VIEW CONTROLER


Chilat Sergiu Bali 2010

Prezentarea modelului MVC


Programarea utiliznd MVC (Model-ViewController) separ aplicaia n trei mari pri:
1. Modelul - reprezint datele aplicaiei;
2. View-ul ofer o prezentare a datelor din Model:
3. Controller-ul ruteaz cererile fcute de client, se
ocup de partea logic a aplicaiei i face
legtura dintre Model i View.

Noiunea de MVC(Model View


Controller)
MVC este un concept foarte rspndit n
programarea Web. Scopul MVC este de a
ine separate logica business-ului i
interfaa utilizator, astfel nct cei care
ntrein aplicaia s modifice mult mai uor
o parte, fr a afecta alte pri

Principiul de baz al MVC


Principiul care st la baza
conceptului Model-View-Controller
este mprirea responsabilitilor.
ntr-o aplicaie creat trebuie s
respecte acest concept, avem:

Componenta Model
Modelul reprezint partea de hardprogramming, partea logic a
aplicaiei. El are n responsabilitate
aciunile i operaiile asupra datelor,
autentificarea utilizatorilor, integrarea
diverselor clase ce permit procesarea
informaiilor din diverse baze de date.

Componenta View
View-ul se ocup de afiarea datelor,
practic aceast parte a programului
va avea grij de cum vede end-userul
informaia procesat de controller. O
dat ce funciile sunt executate de
model, view-ului i sunt oferite
rezultatele, iar acesta le va trimite
ctre browser.

Componenta Controler
Controller-ul reprezint creierul
aplicaiei. Aceasta face legtura ntre
model i view, ntre aciunile user-ului
i partea decizional a aplicaiei. n
funcie de nevoile utilizatorului,
controller-ul apeleaz diverse funcii
definite special pentru seciunea de
site n care se afl user-ul.

2. Model View Controller

Modelul arhitectural din Smalltalk


Separarea datelor de prezentare
Uurina ntreinerii

Server

Client

Baza de date

Exemplu de MVC:
Partea 1: View (Client)
Partea 2: Controller (Server)
Partea 3: Model (Baza de date)

Prezentare

Date

Prezentare:
View este interfaa utilizatorului
Controller este codul aplicaiei

Date:
Model este baza de date

Baza de date

MVC exemplu general

Structura componentei
MODEL
n model de obicei se scrie o clas cu
funciile de apel pentru baza de date, cum
ar fi:
funcie care primete ca parametru o
variabil de tip array cu datele ce
trebuiesc salvate n baza de date i
returneaz FALSE n caz de eroare sau un
ID n caz de salvare cu succes a datelor;

Structura componentei
MODEL
funcie care preia datele din baza de
date, primete ca parametru o
variabil de tip array pentru
interogarea n baza de date (condiia
pentru WHERE) i returneaz FALSE
sau o variabila de tip array cu datele
obinute din baza de date;

Structura componentei
MODEL

funcie pentru a afla numrul total de


nregistrri din baza de date (folosit de
obicei la paginare) care primete ca
parametru o variabil de tip array pentru
interogarea n baza de date (condiia
pentru WHERE) i returneaz FALSE
sau un numr ntreg ce reprezint
numrul de nregistrri gsite;

Rolurile componentei MODEL


Partea de model nmagazineaz datele
sub form de proprieti i pune la
dispoziie metode specifice aplicaiei care
permit extragerea i fixarea datelor.
Metodele care gestioneaz datele nu sunt
ceva generic, ele sunt adaptate cerinelor
aplicaiei i trebuie s fie cunoscute
prilor de control i de vedere.

Structura componentei VIEW


View-ul este partea care afieaz
informaiile, aici nu trebuie s se fac
calcule sau prelucrri de date, i nici
o decizie (if, switch, etc)

Structura componentei VIEW


De obicei facem un switch i n el n
funcie de caz afim codul html
corespunztor mpreun cu datele
primite de la controller, sau facem
pagini separate pentru fiecare
formular sau seciune ce trebuie
afiat.

Structura componentei
CONTROLER
Aici este cel mai mult cod de scris,
fiind pagina care se cere prima dat
i care le include pe celelalte, este
nevoie de multe verificri i prelucrri
de date, iar la sfrit datele se trimit
sub forma unor variabile de tip array
la view-er sau n baza de date prin
intermediul funciilor din model.

Rolurile componentei
CONTROLER
Controller-ul reprezint creierul
aplicaiei. Aceasta face legtura ntre
model i view, ntre aciunile user-ului
i partea decizional a aplicaiei. n
funcie de nevoile utilizatorului,
controller-ul apeleaz diverse funcii
definite special pentru seciunea de
site n care se afl user-ul.

Rolurile componentei
CONTROLER
Funcia se va folosi de model pentru
a prelucra (extrage, actualiza) datele,
dup care informaiile noi vor fi
trimise ctre view, ce le va afia apoi
prin template-uri.

Rolurile componentei
CONTROLER
Controller-ul ateapt anunarea de
evenimente din partea prii de vedere
ca urmare a unor modificri realizate
de utilizator i s le transpun n
modificri pentru model. n unele cazuri
speciale, controller-ul ar putea s
induc modificri prii de vedere prin
apelarea de metode din cadrul vederii.

Rolurile componentei
CONTROLER
Modificrile sunt trimise direct vederii
doar n cazul n care sunt doar de
cosmetizare a vederii i nu au nici un
efect asupra modelului (de exemplu
funciile de ordonare de liste).

AVANTAJE MVC
Claritatea designului: Uurin pentru
a controla comportamentul modelului;
Reutilizarea codului: Arhitectura
optimizeaz reutilizarea codului;
Modularitate eficient : Modularitatea
design-ului permite schimbarea
oricrei

AVANTAJE MVC

Multiple view-uri cu acelai model:


Separarea modelului de view permite
folosirea multipl de view-uri pstrnd
acelai model;
Suport pentru tipuri noi de client:
Pentru a integra un nou tip de client
nu trebuie dect

AVANTAJE MVC

Uurin n versionare: Controller-ele


i view-urile pot crete n paralel cu
modelul;
Permite mai multe reprezentri (views)
ale aceeai informaii (model);
Permite interfeelor utilizator (views) s
fie uor adugate, nlturate sau
modificate, n

DEZAVANTAJE MVC
Instabilitatea view-ului: Separarea view-ului
de model permite un model mai
robust(trainic) ns codul de interfa sufer
schimbri frecvente i chiar dramatice;
Greu de implementat;
Clase Controller mari: Pe o aplicaie mare,
cu multe screen-uri, controller-ul ajunge s
fie foarte mare;

DEZAVANTAJE MVC
Datorit folosirii interogrilor simple,
elementele de grafic ar trebui realizate
direct n interfaa grafic;
Interfaa grafic poate fi programat s
realizeze funcii de validare a cmpurilor,
accelernd astfel funcionarea aplicaiei;

EXEMPLU DE CERERE MVC

S-ar putea să vă placă și