VMC Architekstura i okvir s primjerima
⚡ Pametni sažetak
Model-View-Controller (MVC) je arhitektonski obrazac koji aplikaciju dijeli na tri komponente - Model, View i Controller - izolirajući poslovnu logiku od prezentacijskog sloja kako bi se izgradile web i desktop aplikacije koje se mogu održavati i testirati koristeći okvire kao što su Spring, Django i Laravel.
Što je MVC Framework?
The Model-View-Controller (MVC) framework je arhitektonski obrazac koji dijeli aplikaciju na tri glavne logičke komponente Model, View i Controller. Otuda i kratica MVC. Svaka komponenta arhitekture izgrađena je za rukovanje specifičnim aspektom razvoja aplikacije. MVC odvaja poslovnu logiku i prezentacijski sloj jedan od drugog. Tradicionalno se koristio za desktop grafička korisnička sučelja (GUI). Danas je MVC arhitektura u web tehnologiji postala popularna za dizajniranje web aplikacija, kao i mobilnih aplikacija.
Povijest MVC-a
- O MVC arhitekturi prvi je put raspravljao Trygve Reenskaug 1979
- MVC model je prvi put predstavljen 1987. godine u programskom jeziku Smalltalk.
- MVC je prvi put prihvaćen kao opći koncept u članku iz 1988. godine
- U novije vrijeme, MVC obrazac se široko koristi u modernim web aplikacijama.
Značajke MVC-a
- Jednostavna provjera bez trenja. Framework koji se može visoko testirati, proširiv i pluggable
- Za dizajniranje arhitekture web aplikacije pomoću MVC uzorka, nudi se potpuna kontrola nad vašim HTML-om kao i nad vašim URLs
- Iskoristite postojeće značajke koje pružaju ASP.NET, JSP, Django itd.
- Jasno razdvajanje logike: model, pogled, kontroler. Razdvajanje aplikacijskih zadataka, tj. poslovna logika, Ul logika i ulazna logika
- URL Usmjeravanje za SEO optimizaciju URLs. Moćan URL-kartaping za razumljivo i pretraživo URLs
- Podrška za razvoj vođen testiranjem (TDD)
VMC Architektura
Sada kada su prednosti jasne, evo detaljne arhitekture MVC okvira:

Tri važne MVC komponente su:
- Model: uključuje sve podatke i povezanu logiku
- Pogled: Predstavlja podatke korisniku ili upravlja interakcijom korisnika
- Kontroler: sučelje između komponenti modela i prikaza
Pogledajmo detaljno svaku od ovih komponenti:
Pogled
Pogled je onaj dio aplikacije koji predstavlja prezentaciju podataka.
Prikazi se stvaraju pomoću podataka prikupljenih iz modela. Prikaz zahtijeva od modela davanje informacija kako bi korisniku prikazao izlaznu prezentaciju.
Prikaz također predstavlja podatke iz grafikona, dijagrama i tablica. Na primjer, bilo koji korisnički prikaz uključivat će sve komponente korisničkog sučelja kao što su tekstualni okviri, padajući izbornici itd.
kontrolor
Kontroler je dio aplikacije koji obrađuje interakciju korisnika. Kontroler interpretira unose miša i tipkovnice od korisnika, obavještavajući model i prikaz da se promijene prema potrebi.
Kontroler šalje naredbe modelu za ažuriranje njegovog stanja (npr. spremanje određenog dokumenta). Kontroler također šalje naredbe pridruženom pogledu za promjenu prezentacije pogleda (na primjer, pomicanje određenog dokumenta).
Model
Komponenta modela pohranjuje podatke i povezanu logiku. Predstavlja podatke koji se prenose između komponenti kontrolera ili bilo koje druge povezane poslovne logike. Na primjer, objekt Controller će dohvatiti informacije o kupcu iz baze podataka. Manipulira podacima i šalje ih natrag u bazu podataka ili ih koristi za renderiranje istih podataka.
Odgovara na zahtjeve iz prikaza i također odgovara na upute kontrolera za ažuriranje. Također je najniža razina uzorka koja je odgovorna za održavanje podataka.
MVC primjeri
Pogledajmo primjer kontrolera prikaza modela iz svakodnevnog života:
Primjer 1
- Pretpostavimo da idete u restoran. Nećete ići u kuhinju i pripremati hranu što sigurno možete raditi kod kuće. Umjesto toga, odite tamo i pričekajte da konobar dođe.
- Sada vam dolazi konobar, a vi naručujete hranu. Konobar ne zna tko ste i što želite, samo je zapisao detalje vaše narudžbe hrane.
- Zatim, konobar prelazi u kuhinju. U kuhinji vam konobar ne priprema hranu.
- Kuharica priprema vašu hranu. Konobar dobiva vašu narudžbu zajedno s brojem vašeg stola.
- Kuhajte zatim pripremljenu hranu za vas. On koristi sastojke za kuhanje hrane. Pretpostavimo da ste naručili sendvič s povrćem. Zatim mu treba kruh, rajčica, krumpir, paprika, luk, komadić, sir itd. koje nabavlja iz hladnjaka
- Kuhar na kraju predaje hranu konobaru. Sada je posao konobara da ovu hranu iznese izvan kuhinje.
- Sada konobar zna koju hranu ste naručili i kako je poslužena.
U ovom primjeru MVC arhitekture,
View= You Waiter= Controller Cook= Model Refrigerator= Data
Pogledajmo još jedan primjer MVC modela,
Primjer 2
Pogonski mehanizam automobila još je jedan primjer modela MVC.
- Svaki automobil sastoji se od tri glavna dijela.
- Prikaz: Korisničko sučelje: (Ručica mjenjača, ploče, volan, kočnica itd.)
- Regulator - mehanizam (motor)
- Model - Spremnik (spremnik za benzin ili dizel)
Automobil radi iz motora uzima gorivo iz skladišta, ali radi samo pomoću navedenih uređaja korisničkog sučelja.
Popularni MVC web okviri
Ovdje je popis nekih popularnih MVC okvira:
- Ruby na tračnicama
- Django
- CakePHP
- Yii
- CherryPy
- Proljetni MVC
- Katalizator
- Šine
- Zendov okvir
- Codeupaljač
- Laravel
- Gorivo PHP
- Symphony
Prednosti MVC-a: Ključne prednosti
Ovdje su glavne prednosti korištenja MVC arhitekture:
- Jednostavno održavanje koda koji je lako proširiti i proširiti
- Komponenta MVC modela može se testirati odvojeno od korisnika
- Lakša podrška za nove vrste klijenata
- Razvoj različitih komponenti može se izvoditi paralelno.
- Pomaže vam da izbjegnete složenost dijeljenjem aplikacije u tri cjeline. Model, pogled i upravljač
- Koristi samo obrazac Front Controller koji obrađuje zahtjeve web aplikacije putem jednog kontrolera.
- Nudi najbolju podršku za razvoj vođen testovima
- Dobro funkcionira za web-aplikacije koje podržavaju veliki timovi web-dizajnera i programera.
- Pruža jasno razdvajanje briga (SoC).
- Pogodan za optimizaciju tražilica (SEO).
- Sve klase i objekti neovisni su jedni o drugima tako da ih možete testirati zasebno.
- MVC dizajn obrazac omogućuje logičku grupuping povezanih radnji na kontroleru zajedno.
Nedostaci korištenja MVC-a
- Teško za čitanje, promjenu, jedinično testiranje i ponovnu upotrebu ovog modela
- Navigacija okvirom može biti komplicirana jer uvodi nove slojeve absa.traccija koja zahtijeva od korisnika da se prilagode kriterijima dekompozicije MVC-a.
- Nema službene potpore za provjeru valjanosti
- Povećana složenost i neučinkovitost podataka
- Poteškoće korištenja MVC-a s modernim korisničkim sučeljem
- Postoji potreba za više programera za paralelno programiranje.
- Potrebno je poznavanje više tehnologija.
- Održavanje puno kodova u Controlleru
3-slojna Architekstura protiv MVC Architektura
| Parametar | 3-razina Architektura | VMC Architektura |
|---|---|---|
| komunikacija | Ova vrsta arhitektonskog uzorka nikada ne komunicira izravno s podatkovnim slojem. | Svi slojevi komuniciraju izravno pomoću topologije trokuta. |
| Upotreba | 3 razine: široko se koristi u web aplikacijama gdje klijent, podatkovne razine i međuslojni softver rade na fizički odvojenim platformama. | Općenito se koristi na aplikacijama koje se izvode na jednoj grafičkoj radnoj stanici. |



