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.

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:

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
- 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
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:
- Ruby on Rails
- Django
- CakePHP
- Yii
- CherryPy
- MVC de primăvară
- Catalizator
- Rails
- Cadrul Zend
- Codeigniter
- Laravel
- Combustibil PHP
- Symphony
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ă. |


