Model-vizualizare-controler

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Structura modelului MVC

Model-view-controller ( MVC , uneori tradus în italiană ca model-view-control ), în informatică , este un model arhitectural foarte răspândit în dezvoltarea sistemelor software , în special în contextul programării orientate obiect și al aplicațiilor web , capabil să separe logica de prezentare a datelor de logica afacerii . [1] Acest model este poziționat la nivel logic sau de afaceri și de prezentare într-o arhitectură cu mai multe niveluri .

Descriere

Componente

Componenta centrală a MVC, modelul, surprinde comportamentul aplicației în ceea ce privește domeniul problemei, indiferent de interfața cu utilizatorul. Modelul gestionează direct datele, logica și regulile aplicației. O vizualizare poate fi orice reprezentare de ieșire a informațiilor, cum ar fi un grafic sau o diagramă. Sunt posibile mai multe vizualizări ale acelorași informații, cum ar fi o diagramă cu bare pentru gestionare și o vizualizare tabulară pentru administrare. Terțul, controlerul, acceptă intrarea și o convertește în comenzi pentru model și / sau vizualizare.

Structura

Interacțiune tipică între componentele modelului MVC

Modelul se bazează pe separarea sarcinilor între componentele software care joacă trei roluri principale:

  • modelul oferă metodele de accesare a datelor utile aplicației;
  • vizualizarea afișează datele conținute în model și tratează interacțiunea cu utilizatorii și agenții;
  • controlerul primește comenzile utilizatorului (de obicei prin vizualizare) și le implementează modificând starea celorlalte două componente.

Această schemă, printre altele, implică, de asemenea, separarea tradițională între logica aplicației (în acest context adesea numită „ logică de afaceri ”), încărcată de controler și model , și de interfața utilizator încărcată de vizualizare . [2]

Detaliile interacțiunilor dintre aceste trei obiecte software depind foarte mult de tehnologiile utilizate ( limbaj de programare , orice biblioteci , middleware și așa mai departe) și de tipul de aplicație (de exemplu, dacă este o aplicație web sau o aplicație desktop ) . Aproape întotdeauna relația dintre vizualizare și model poate fi, de asemenea, descrisă ca o instanță a modelului Observer . Uneori, atunci când este necesar să se schimbe comportamentul standard al aplicației în funcție de circumstanțe, controlerul implementează și modelul Strategiei .

Utilizare

Din punct de vedere istoric, modelul MVC a fost implementat pe partea serverului. Recent, odată cu dezvoltarea și standardizarea parțială a JavaScript-ului , s-au născut primele implementări din partea clientului. [3]

Partea de server

Utilizat inițial în limbajul Smalltalk , modelul a fost susținut explicit sau implicit de numeroase tehnologii moderne, cum ar fi cadrele bazate pe PHP ( Symfony , Laravel , Zend Framework , CakePHP , cadrul Yii , CodeIgniter ), pe Ruby ( Ruby on Rails ), pe Python ( Django , TurboGears , Pylons , Web2py , Zope ), pe Java ( Spring , JSF și Struts ), pe Objective C sau pe .NET .

Datorită difuzării tot mai mari a tehnologiilor bazate pe MVC în contextul platformei de cadru sau middleware pentru aplicații web , termenul de cadru MVC sau sistem MVC intră în uz și pentru a indica în mod specific această categorie de sisteme (care include de exemplu Ruby on Rails , Struts , Spring , Tapestry și Catalyst ).

Partea clientului

Exemplu de schemă MVC în J2EE

În ultimii ani, cererea de aplicații Rich Internet care efectuează apeluri asincrone către server ( AJAX ) a crescut, fără a face redirecționări pentru a vizualiza rezultatele procesării. Pe măsură ce cantitatea de JavaScript care rulează pe client a crescut, a fost nevoie să se creeze primele cadre care au implementat MVC în JavaScript pur. Unul dintre primii a fost Backbone.js, urmat de o serie nesfârșită de alte cadre, inclusiv JavaScriptMVC, Ember și AngularJS.

Exemplu

În J2EE un exemplu tipic este cel al subdiviziunii aplicației în JSP (pentru front-end sau vizualizare), Servlet pentru controler și un fișier Java pentru logica de afaceri a interfațării sau modelarea cu un DB . Atunci când acest lucru nu este prezent, un cadru MVC implementează aceeași logică / schemă simplificând totul.

Notă

  1. ^ Pentru o introducere în stil universitar, consultați aceste diapozitive . Pentru o introducere a modelului MVC dintr-o perspectivă Java, consultați acest articol Arhivat pe 24 decembrie 2012 la Internet Archive . pe Mokabyte, pentru o introducere din perspectiva Microsoft, consultați acest articol despre MSDN.
  2. ^ Vezi articolul lui Martin Fowler.
  3. ^ Citiți această mare introducere

Elemente conexe

Alte proiecte

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT