MVC arhitektura

Из Википедије, слободне енциклопедије

MVC arhitektura je softverski patern Model-view-controller koji odvaja prikaz informacija od interakcije korisnika sa tim informacijama. Model se sastoji od podataka aplikacije, poslovnih pravila, logike i funkcija. View može da bude bilo koji izlazni prikaz podataka, kao što je dijagram ili grafik. Više prikaza istog podatka je moguće, kao što je grafik sa barovima za menadžment i tabelarni prikaz za računovođe. Controller uzima ulazne podatke i konvertuje ih u komande za model ili view.

Interakcije između komponenti[уреди]

MVC deli softverski sistem u tri dela:

  • View - obezbeđuje korisniku interfejs pomoću koga korisnik unosi podatke i poziva odgovarajuće operacije koje treba da se izvrše nad model-om. View prikazuje korisniku stanje model-a.
  • Controller - osluškuje i prihvata zahtev od klijenta za izvršenje operacije. Nakon toga poziva operaciju koja je definisana u model-u, i ukoliko model promeni stanje, obaveštava view o promeni stanja.
  • Model - predstavlja stanje sistema koje mogu promeniti operacije model-a. Model ne mora da zna ko su view i controller.

Korišćenje u web aplikacijama[уреди]

MVC je široko prihvaćen kao patern za aplikacije na svetskoj mreži, u svim značajnijim programskim jezicima. Nekoliko komercijalnih i nekomercijalnih framework-a koriste ovaj patern. Svaki od njih varira u interpretaciji po pitanju toga da su MVC odgovornosti podeljene između klijenta i servera. Oni raniji su podržavali da se ceo model, view i controller nalazi na serveru. U ovom pristupu, klijent je slao zahtev (na primer preko forme) a potom primao kompletnu novoformiranu web stranu.

Kako je tehnologija napredovala, došlo se do toga da se MVC komponente delom izvršavaju na klijentu (Ajax).

Istorijat[уреди]

Trygve Reenskaug je uveo MVC u Smalltalk-76 tokom posete Ziroksu sedamdesetih godina.[1][2] Zatim, osamdesetih Jim Althoff i drugi su implementirali verziju MVC-a za Smalltalk-80 biblioteku klasa. Tek u članku iz 1988-e MVC je predstavljen kao koncept.[3] Ovaj prvi MVC koncept definiše controller kao modul koji radi sa ulaznim podacima (slično kao što view radi sa izlaznim podacima). U modernim aplikacijama od 2000-te godine, controller je modul ili deo koda koji služi za komunikaciju između model-a i view-a, koristeći ili direktan poziv ili observer. Drugi aspekti MVC-a su takođe evoluirali, ali kao varijante originalnog koncepta, i pošto delovi klasičnog MVC-a nemaju smisla kada se koriste kod debelih klijenata HMVC, MVA, MVP, MVVM i drugi su adaptirali MVC na drugačije načine.

Reference[уреди]

  1. ^ Notes and Historical documents from Trygve Reenskaug, inventor of MVC.
  2. ^ "A note on DynaBook requirements", Trygve Reenskaug, 22 March 1979, SysReq.pdf.
  3. ^ Krasner, Glenn E.; Stephen T. Pope (Aug/Sep 1988). „A cookbook for using the model-view controller user interface paradigm in Smalltalk-80“. The JOT (SIGS Publications).  Also published as "A Description of the Model-View-Controller User Interface Paradigm in the Smalltalk-80 System" (Report), ParcPlace Systems; Retrieved 2012-06-05.

Vidi još[уреди]