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.

  • 🧱 Tri komponente: MVC dijeli aplikaciju na Model (podaci), View (prikaz) i Controller (interakcija s korisnikom).
  • 🗄️ Model: Pohranjuje podatke i poslovnu logiku, odgovarajući na zahtjeve iz View-a i upute iz Controller-a.
  • 🖼️ Pregled: Predstavlja podatke korisniku putem elemenata korisničkog sučelja kao što su tekstualni okviri, padajući izbornici, grafikoni i tablice.
  • 🎮 kontroler: Interpretira korisnički unos, a zatim ažurira Model i View u skladu s tim.
  • Popularni okviri: Spring MVC, Django, Ruby on Rails, CakePHP, Laravel i CodeIgniter implementira MVC obrazac.
  • ⚖️ Prednosti u odnosu na nedostatke: MVC poboljšava testabilnost i paralelni razvoj, ali dodaje abstracslojevi i složenost navigacije.

VMC Architekstura i okvir

Š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:

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 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

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.
  • 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:

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.

Pitanja i odgovori

MVC je arhitektonski obrazac, a ne jednostavan dizajnerski obrazac. Organizira cijelu aplikaciju u slojeve Model, View i Controller, odvajajući podatke, prezentaciju i logiku interakcije s korisnikom.

MVC koristi kontroler za obradu ulaza i ažuriranje modela i prikaza, dok MVVM koristi ViewModel s povezivanjem podataka. MVVM smanjuje standardne postavke i uobičajen je u modernim UI okvirima.

Koristite MVC pri izradi aplikacija koje zahtijevaju jasno odvajanje podataka, korisničkog sučelja i logike, posebno web aplikacija koje održavaju veći timovi. Poboljšava mogućnost testiranja, paralelni razvoj i SEO prilagođeno usmjeravanje.

AI značajke obično se dodaju u sloju modela ili usluge MVC aplikacije. Kontroler prosljeđuje korisnički unos AI modelima, a Prikaz prikazuje predviđanja, preporuke ili generirani sadržaj korisnicima.

Da. AI asistenti za kodiranje mogu izraditi MVC komponente, generirati kontrolere, modele i prikaze te predlagati usmjeravanje. Programeri i dalje pregledavaju izlaz kako bi osigurali ispravnu poslovnu logiku i sigurnost.

Sažmite ovu objavu uz: