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. (1988). „A cookbook for using the model-view controller user interface paradigm in Smalltalk-80”. The JOT. SIGS Publications.  Непознати параметар |coauthors= игнорисан [|author= се препоручује] (помоћ) 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š[уреди]