Vodič za MVC Framework za početnike: Što je, Architekstura i primjer

Š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 uzorak 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
  • Da biste dizajnirali arhitekturu web aplikacije pomoću MVC uzorka, on nudi potpunu kontrolu nad vašim HTML-om, kao i vašim URL-ovima
  • 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 friendly URL-ove. Moćno mapiranje URL-ova za razumljive i pretražive URL-ove
  • Podrška za razvoj vođen testiranjem (TDD)

VMC Architektura

Ovdje je detaljna arhitektura MVC okvira:

VMC Architektura
VMC Archidijagram strukture

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 ovu komponentu u detalje:

Pogled

Pogled je onaj dio aplikacije koji predstavlja prezentaciju podataka.

Pogledi se stvaraju podacima prikupljenim iz podataka modela. Pogled zahtijeva od modela da pruži informacije kako bi korisniku predstavio 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

Upravljač je onaj dio aplikacije koji upravlja interakcijom korisnika. Kontroler tumači unose miša i tipkovnice od korisnika, informirajući model i prikaz da se promijene prema potrebi.

Upravljač šalje naredbe modelu da ažurira svoje stanje (npr. spremanje određenog dokumenta). Upravljač također šalje naredbe svom 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 zahtjev pogleda i također odgovara na upute kontrolera da se ažurira. To je također najniža razina obrasca koja je odgovorna za održavanje podataka.

MVC primjeri

Pogledajmo primjer kontrolera prikaza modela iz svakodnevnog života:

Primjer 1

MVC primjeri

  • 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

MVC primjeri

Pogonski mehanizam automobila još je jedan primjer modela MVC.

  • Svaki automobil sastoji se od tri glavna dijela.
  • Pogled= Korisničko sučelje: (Ručica mjenjača, ploče, upravljač, 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:

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.
  • Omogućuje čisto odvajanje koncerna (SoC).
  • Pogodan za optimizaciju tražilica (SEO).
  • Sve klase i objekti neovisni su jedni o drugima tako da ih možete testirati zasebno.
  • MVC uzorak dizajna omogućuje logičko grupiranje povezanih radnji na kontroleru zajedno.

Nedostaci korištenja MVC-a

  • Teško za čitanje, promjenu, jedinično testiranje i ponovnu upotrebu ovog modela
  • Okvirna navigacija može biti složena jer uvodi nove slojeve apstrakcije što od korisnika zahtijeva prilagodbu 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.

rezime

  • MVC je arhitektonski obrazac koji dijeli aplikaciju na 1) model, 2) pogled i 3) kontroler
  • 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
  • O MVC arhitekturi prvi je put raspravljao Trygve Reenskaug 1979
  • MVC arhitektura u Java je okvir koji se može visoko testirati, proširiv i pluggable
  • Neki popularni MVC okviri su Rails, Zend Framework, CodeIgniter, Laravel, Fuel PHP itd.