Tutorial MVC Framework pentru începători: Ce este, Architectură & Exemplu

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
  • Pentru a proiecta o arhitectură de aplicație web folosind modelul MVC, acesta oferă control deplin asupra HTML-ului, precum și a adreselor URL
  • 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
  • Rutarea URL pentru URL-uri prietenoase cu SEO. Mapare puternică a adreselor URL pentru adrese URL inteligibile și care pot fi căutate
  • Suport pentru dezvoltare bazată pe teste (TDD)

MVC Architectură

Iată arhitectura detaliată a cadrului 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ă ne vedem în detaliu această componentă:

Vizualizare

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

Vizualizările sunt create de datele colectate din datele modelului. O vizualizare solicită modelului să ofere informații astfel încât să prezinte utilizatorului prezentarea de ieșire.

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 se ocupă de interacțiunea utilizatorului. Controlerul interpretează intrările mouse-ului și tastaturii de la utilizator, informând modelul și vizualizarea să se schimbe după caz.

Un controler trimite comenzile modelului pentru a-și actualiza starea (de exemplu, salvarea unui anumit document). Controlerul trimite, de asemenea, comenzi către vizualizarea asociată pentru a modifica prezentarea vizualizării (de exemplu, derularea unui anumit document).

Modele Usi

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 solicitarea din vizualizări și, de asemenea, răspunde la instrucțiunile controlorului pentru a se actualiza. Este, de asemenea, cel mai de jos 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 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 curată 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 proiectare MVC permite gruparea logică a acțiunilor asociate pe un controler împreună.

Dezavantajele utilizării MVC

  • Este dificil de citit, schimbat, testat și reutilizat acest model
  • Navigarea în cadrul cadru poate deveni complexă, deoarece introduce noi straturi de abstractizare care necesită adaptarea utilizatorilor 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ă.

Rezumat

  • MVC este un model arhitectural care separă o aplicație în 1) Model, 2) Vedere și 3) Controler
  • 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
  • Arhitectura MVC a fost discutată pentru prima dată în 1979 de Trygve Reenskaug
  • Arhitectura MVC în Java este un cadru extrem de testabil, extensibil și conectabil
  • Unele cadre MVC populare sunt Rails, Zend Framework, CodeIgniter, Laravel, Fuel PHP etc.