MVC Architecture

Emir Veledar
3 min readMay 29, 2019

--

MVC…?

MVC je skraćenica od Model-View-Controller i sastoji se od upravo te tri komponente koje obavljaju različite zadatke (podijeli pa vladaj). Gdje je funkcionalnost software-a podijeljna na 3 odvojena dijela koja se nalaze u određenom odnosu i komuniciraju jedan sa drugim preko metoda.

Kako je nastao MVC…?

Najprije ćemo spomenuti par razloga kako je došlo do razvoja ove arhitekture. Računari prije nego što su ušli u komercijalnu upotrebu bili su zasnovani na komandnoj liniji i taj dio je trebalo izmijeniti da bi interakcija sa čovjekom bila jednostavnija. Tu je na scenu nastupio GUI (Graphical User Interface) ili grafički interfejs. Sa njegovim razvojem došlo je do razvoja različitih arhitektura na kojima se zasnivao GUI, ali jedna koja se danas izdvojila je MVC arhitektura koju je razvio Trygve Reenskaug. Njegova ideja je bila da se arhitektura GUI-a podijeli u nekoliko manjih neovisnih cjelina koje bi izmedju komunicirale. MVC od nastanka do danas je pretrpio nekoliko modifikacija, ali je koncept ostao onakav kakav je zamišljen.

Zašto MVC…?

Već smo ranije rekli da se svaki software satoji od korisničkog interfejsa ili GUI-a i biznis logike. I recimo da software nije rađen na MVC arhitekturi što znači da je GUI (prezentacijski sloj) i biznis logika jedna cjelina (nalaze se u istom fajlu). Kako je GUI ovisan o uređaju na kojem se prikazuje i svaka promjena na njemu vuče i promjenu u biznis logici. To održavanje takvog software-a čini kompleksnom i neporduktivnom i otežava daljni razvoj takvog software-a. Pored toga ako bi neki dio željeli prikazati na više načina to je jako teško bez prepisivanja biznis logike tog dijela.

Model-View-Controller

Model sadrži biznis logiku software-a. On je zadužen za rad sa podacima, njihovo kreiranje, modifikovanje kao i brisanje. Pored rada sa podacima još jedna od njegovih funkcija je i komunikacija sa bazom podataka.

View je zadužen za prikaz podataka. On je jedini koji je vidljiv korisniku i služi da podatke koje dobije od modela na odgovarajući način prikazuje korisniku da to bude ugodno za oko ali i funkcionalno. Ostali dijelovi su skriveni od korisnika i rade u pozadini. Za jedan software možete imate više view-a za različit prikaz podataka ili za različite uređaje.

Controller je ono od čega sve kreće. Kada vi napravite neki klik na web stranici vi zapravo komunicirate sa controller-om tj. pozivate određenu njegovu akciju. On je taj koji sve koordiniše i upravlja korisničkim zahtjevima komunicira sa modelom i bira određeni view koji će se prikazati korisniku kao response na njegovu akciju.

U praksi se koriste i nasljednici MVC poput MVP (Model-View-Presenter) i MVVM (Model-View-ViewModel).

I došli smo do kraja i ovoga posta gdje sam vam objasnio osnovne koncepte MVC-a, dok u nekim od idućih postova ćemo vidjeti MVC u akciji.

--

--