MVC ArchiTextură și cadru cu exemple

⚡ Rezumat inteligent

Model-View-Controller (MVC) este un model arhitectural care separă o aplicație în trei componente - Model, View și Controller - izolând logica de business de stratul de prezentare pentru a construi aplicații web și desktop testabile și întreținabile folosind framework-uri precum Spring, Django și Laravel.

  • 🧱 Trei componente: MVC împarte o aplicație în Model (date), Vizualizare (prezentare) și Controler (interacțiunea cu utilizatorul).
  • 🗄️ Model: Stochează date și logica de business, răspunzând la solicitările din View și la instrucțiunile din Controller.
  • 🖼️ Vizualizare: Prezintă datele utilizatorului prin intermediul elementelor de interfață, cum ar fi casete de text, meniuri derulante, diagrame și tabele.
  • 🎮 Controlor: Interpretează datele introduse de utilizator, apoi actualizează Modelul și Vizualizarea în consecință.
  • ⚙️ Framework populare: Spring MVC, Django, Ruby on Rails, CakePHP, Laravel și CodeIgniter implementează modelul MVC.
  • 🇧🇷 Beneficii vs. Dezavantaje: MVC îmbunătățește testabilitatea și dezvoltarea paralelă, dar adaugă elemente abstracstraturi de țiune și complexitate a navigației.

MVC Archistructură și cadru

Ce este MVC Framework?

Model-View-Controller (MVC) framework este un model arhitectural care separă o aplicație în trei componente logice principale Model, View și Controller. De aici abrevierea MVC. Fiecare componentă de arhitectură este construită pentru a gestiona un aspect specific de dezvoltare al unei aplicații. MVC separă logica de afaceri și stratul de prezentare unul de celălalt. A fost folosit în mod tradițional pentru interfețele grafice cu utilizatorul (GUI) pentru desktop. În zilele noastre, arhitectura MVC în tehnologia web a devenit populară pentru proiectarea aplicațiilor web, precum și a aplicațiilor mobile.

Istoria MVC

  • Arhitectura MVC a fost discutată pentru prima dată în 1979 de Trygve Reenskaug
  • Modelul MVC a fost introdus pentru prima dată în 1987 în limbajul de programare Smalltalk.
  • MVC a fost acceptat pentru prima dată ca concept general, într-un articol din 1988
  • În ultima vreme, modelul MVC este utilizat pe scară largă în aplicațiile web moderne.

Caracteristicile MVC

  • Testabilitate ușoară și fără frecare. Cadru extrem de testabil, extensibil și conectabil
  • Proiectarea arhitecturii unei aplicații web folosind modelul MVC oferă control deplin atât asupra HTML-ului, cât și asupra... URLs
  • Utilizați funcțiile existente furnizate de ASP.NET, JSP, Django etc.
  • Separare clară a logicii: model, vedere, controler. Separarea sarcinilor aplicației, adică. logica de afaceri, logica Ul și logica de intrare
  • URL Rutare pentru optimizare SEO URLs. Puternic URL-Hartăping pentru informații ușor de înțeles și de căutat URLs
  • Suport pentru dezvoltare bazată pe teste (TDD)

MVC Architectură

Acum că beneficiile sunt clare, iată arhitectura detaliată a framework-ului MVC:

MVC Architectură
MVC ArchiDiagrama de tectură

Trei componente importante MVC sunt:

  • Model: include toate datele și logica aferentă acesteia
  • Vizualizare: Prezintă date utilizatorului sau gestionează interacțiunea utilizatorului
  • Controler: O interfață între componentele Model și View

Să vedem fiecare dintre aceste componente în detaliu:

Vizualizare

O vizualizare este acea parte a aplicației care reprezintă prezentarea datelor.

Vizualizările sunt create pe baza datelor colectate din datele modelului. O vizualizare solicită modelului să furnizeze informații astfel încât să prezinte utilizatorului rezultatul.

Vederea reprezintă, de asemenea, datele din diagrame, diagrame și tabele. De exemplu, orice vizualizare a clientului va include toate componentele UI, cum ar fi casetele de text, meniurile derulante etc.

operator de date cu caracter personal,

Controlerul este acea parte a aplicației care gestionează interacțiunea utilizatorului. Controlerul interpretează intrările de la mouse și tastatură de la utilizator, informând modelul și vizualizarea pentru a se modifica în mod corespunzător.

Un controller trimite comenzi către model pentru a-i actualiza starea (de exemplu, salvarea unui anumit document). De asemenea, controllerul trimite comenzi către vizualizarea asociată pentru a modifica prezentarea vizualizării (de exemplu, derularea unui anumit document).

Model

Componenta model stochează date și logica aferentă acesteia. Reprezintă date care sunt transferate între componentele controlerului sau orice altă logică de afaceri aferentă. De exemplu, un obiect Controller va prelua informațiile despre client din baza de date. Acesta manipulează datele și le trimite înapoi la baza de date sau le folosește pentru a reda aceleași date.

Răspunde la solicitările din view-uri și, de asemenea, răspunde la instrucțiunile controlerului de a se actualiza. De asemenea, este cel mai scăzut nivel al modelului, care este responsabil pentru menținerea datelor.

Exemple MVC

Să vedem un exemplu de model View Controller din viața de zi cu zi:

Exemplu 1

Exemple MVC

  • Să presupunem că mergi la un restaurant. Nu vei merge la bucătărie și vei pregăti mâncare pe care cu siguranță le poți face acasă. În schimb, te duci acolo și aștepți să vină chelnerul.
  • Acum chelnerul vine la tine și tu comanzi mâncarea. Chelnerul nu știe cine ești și ce vrei, doar a notat detaliile comenzii tale de mâncare.
  • Apoi, chelnerul se mută în bucătărie. În bucătărie, chelnerul nu vă pregătește mâncarea.
  • Bucătarul vă pregătește mâncarea. Chelnerului i se dă comanda dumneavoastră împreună cu numărul de masă.
  • Gătiți apoi mâncarea pregătită pentru dvs. El folosește ingrediente pentru a găti mâncarea. Să presupunem că comandați un sandviș cu legume. Apoi are nevoie de pâine, roșii, cartofi, ardei ardei, ceapă, mușcătură, brânză etc. pe care le aprovizionează de la frigider
  • Gătiți ultima dată mâncarea chelnerului. Acum este treaba chelnerului să mute această mâncare în afara bucătăriei.
  • Acum chelnerul știe ce mâncare ați comandat și cum sunt servite.

În acest exemplu de arhitectură MVC,

View= You
Waiter= Controller
Cook= Model
Refrigerator= Data

Să vedem încă un exemplu de model MVC,

Exemplu 2

Exemple MVC

Mecanismul de conducere al mașinii este un alt exemplu al modelului MVC.

  • Fiecare mașină este formată din trei părți principale.
  • Vizualizare: Interfață utilizator: (Maneta schimbătorului de viteze, panouri, volan, frână etc.)
  • Controler - Mecanism (motor)
  • Model - Depozitare (rezervor benzină sau motorină)

Mașina rulează de la motor ia combustibil din depozit, dar funcționează numai folosind dispozitivele de interfață cu utilizatorul menționate.

Cadre web MVC populare

Iată o listă a unor cadre MVC populare:

Avantajele MVC: Beneficii cheie

Iată beneficiile majore ale utilizării arhitecturii MVC:

  • Întreținere ușoară a codului, care este ușor de extins și crescut
  • Componenta modelului MVC poate fi testată separat de utilizator
  • Asistență mai ușoară pentru noile tipuri de clienți
  • Dezvoltarea diferitelor componente poate fi realizată în paralel.
  • Vă ajută să evitați complexitatea prin împărțirea unei aplicații în cele trei unități. Model, vizualizare și controler
  • Utilizează doar un model Front Controller care procesează cererile de aplicații web printr-un singur controler.
  • Oferă cel mai bun suport pentru dezvoltare bazată pe teste
  • Funcționează bine pentru aplicațiile web care sunt susținute de echipe mari de designeri și dezvoltatori web.
  • Oferă o separare clară a preocupărilor (SoC).
  • Optimizare pentru motoarele de căutare (SEO).
  • Toate clasele și obiectele sunt independente unele de altele, astfel încât să le puteți testa separat.
  • Modelul de design MVC permite gruparea logicăping a acțiunilor corelate pe un controler împreună.

Dezavantajele utilizării MVC

  • Este dificil de citit, schimbat, testat și reutilizat acest model
  • Navigarea în cadrul cadrului poate fi uneori complexă, deoarece introduce noi straturi de abdomen.tracțiune care necesită ca utilizatorii să se adapteze la criteriile de descompunere ale MVC.
  • Fără suport formal de validare
  • Complexitate crescută și ineficiență a datelor
  • Dificultatea utilizării MVC cu interfața de utilizator modernă
  • Este nevoie de mai mulți programatori pentru a efectua programarea paralelă.
  • Este necesară cunoașterea mai multor tehnologii.
  • Menținerea multor coduri în Controller

Pe 3 niveluri Architectură vs. MVC Architectură

Parametru 3 nivele Architectură MVC Architectură
Comunicarea Acest tip de model de arhitectură nu comunică niciodată direct cu stratul de date. Toate straturile comunică direct folosind topologia triunghiulară.
Folosire 3-tier: utilizat pe scară largă în aplicațiile web în care clientul, nivelurile de date și middleware rulează pe platforme separate fizic. Utilizat în general pe aplicațiile care rulează pe o singură stație de lucru grafică.

Întrebări frecvente

MVC este un model arhitectural, nu un simplu model de design. Acesta organizează o aplicație întreagă în straturi Model, Vizualizare și Controler, separând datele, prezentarea și logica de interacțiune cu utilizatorul.

MVC folosește un Controller pentru a gestiona datele de intrare și a actualiza Modelul și Vizualizarea, în timp ce MVVM folosește un ViewModel cu legături de date. MVVM reduce boilerplate-ul și este comun în framework-urile UI moderne.

Folosește MVC atunci când construiești aplicații care necesită o separare clară a datelor, interfeței utilizator și logicii, în special aplicații web întreținute de echipe mai mari. Îmbunătățește testabilitatea, dezvoltarea paralelă și rutarea optimizată pentru SEO.

Funcțiile de inteligență artificială (IA) sunt de obicei adăugate în stratul Model sau serviciu al unei aplicații MVC. Controlerul transmite datele introduse de utilizator către modelele de inteligență artificială, iar Vizualizarea afișează predicții, recomandări sau conținut generat utilizatorilor.

Da. Asistenții de codare cu inteligență artificială pot structura componentele MVC, pot genera controllere, modele și vizualizări și pot sugera rutare. Dezvoltatorii verifică în continuare rezultatul pentru a asigura o logică de business și o securitate corecte.

Rezumați această postare cu: