Documente Academic
Documente Profesional
Documente Cultură
Model-View-Controller
(MVC)
Gabriel Ionescu
Grupa 452
Model-View-Controller
Model-View-Controller (MVC) este un model arhitectural care separa
functionalitatea de interfata grafica a aplicatiei, permitand dezvoltarea, intretinerea si
testarea separata a celor doua parti.
Modelul gestioneaza datele sistemului software, raspunde la interogari
referitoare la stare (de obicei solicitate de View) si realizeaza operatii de modificare a
datelor (de obicei invocate de controller). În cazul sistemelor bazate pe evenimente,
modelul notifica observatorii (de obicei view-urile), atunci cand informatia se modifica
pentru ca acestia sa poata reactiona la aceste modificari.
View-ul reda modelul intr-o forma care permite interactiunea cu utilizatorul, de
obicei prin intermediul elementelor de interfata cu utilizatorul. Pentru un singur model
pot exista mai multe view-uri pentru a deservi diferite scopuri.
Controller-ul receptioneaza actiunile utilizatorului si raspunde interogand
modelul.
Separarea codului ce sta la baza unei aplicatii in cele trei componente ale
conceptului MVC va aduce urmatoarele beneficii directe:
- Permite mai multe reprezentari (views) ale aceeasi informatii (model)
- Permite interfetelor utilizator (views) sa fie usor adaugate, inlaturate sau
modificate, in ambele faze, compilare sau/si executie
- Permite modificarea usoara a raspunsurilor la "input"-urile utilizatorului
(controller) atat in timpul compilarii cat si in timpul executiei
- Promoveaza reutilizarea (Exemplu: o vizualizare (view) poate fi folosita
impreuna cu modele diferite)
- Permite mai multor dezvoltatori sa actualizeze simultan interfata, logica sau
"input"-ul unei aplicatii fara a afecta celalalt cod sursa
- Ajuta dezvoltatorii sa se orienteze, la un moment dat, doar pe un singur
aspect al aplicatiei
In ciuda beneficiilor prezentate in randurile de mai sus acest concept nu se
preteaza la toate aplicatiile, el se adreseaza mai mult aplicatiilor de anvergura decat
celor mici.
MVC Calculator
MVCCalculator.java
CalculatorModel.java
CalculatorView.java
CalculatorController.java