Što je MVC?

MVC ili kontroler prikaza modela je tehnika koja se koristi u softveru. Njegova temeljna svrha je izgraditi razliku između načina na koji softver rukuje podacima i načina na koji softver komunicira s korisnikom. Ova razlika znači da se procesi mogu rukovati, razvijati i provjeravati odvojeno, što može biti učinkovitije.

Proces se temelji na konceptu da, na najjednostavnijoj razini, sav softver obavlja istu funkciju u tri koraka. Prvo korisnik unosi podatke, zatim softver obrađuje podatke, a na kraju softver daje rezultate kao novi skup podataka. Vrlo osnovni primjer ovoga je da korisnik upiše “2+2=” u kalkulator, kalkulator izrađuje odgovor, a zatim kalkulator prikazuje “4”.

U MVC sustavu način na koji računalo obrađuje podatke poznat je kao model. Izlaz rezultata poznat je kao pogled. Unos podataka od strane korisnika poznat je kao kontroler. Važno je zapamtiti da su pogled i kontroler dijelovi programa koji kontroliraju ulaz i izlaz. Pojmovi se obično ne odnose na fizičke objekte kao što su tipkovnica ili monitor.

Svrha korištenja MVC-a je jednostavnije izolirati različite elemente softverskog procesa. Korištenjem sustava, program se učinkovito dijeli na tri dijela: obradu podataka, ulazni proces i izlazni proces. To znači da se promjene u jednom dijelu programa mogu učiniti jednostavnije bez potrebe za ponovnim pisanjem ostalih dijelova programa.

Smatra se da je sustav kontrolera prikaza modela bio pionir u programskom jeziku pod nazivom Smalltalk. Stvoren 1970-ih u Xeroxu, Smalltalk je djelomično dizajniran da podučava ljude o objektnom modelu računalstva. Pojednostavljeno, to uključuje rastavljanje računalnog zadatka na zasebne dijelove i izgradnju programa prema načinu na koji ti dijelovi međusobno djeluju. Smalltalk je također bio primjer dinamičkog programiranja, u kojem se program može revidirati čak i dok radi.

MVC sustav se često koristi u web-baziranom softveru kao što je onaj koji se koristi u dinamičkim ili interaktivnim web-mjestima. U tim situacijama, prikaz je kod, kao što je HTML, koji generira softver nakon obrade upita. Na primjer, na tražilici, okvir upita za pretraživanje bio bi kontroler, a stranica s rezultatima prikaz.