logo

Introducció al marc MVC

Durant els últims anys, els llocs web han passat de pàgines HTML simples amb una mica de CSS a aplicacions increïblement complexes amb milers de desenvolupadors treballant-hi alhora. Per treballar amb aquestes aplicacions web complexes, els desenvolupadors utilitzen diferents patrons de disseny per dissenyar els seus projectes, per fer que el codi sigui menys complex i més fàcil de treballar. El més popular d'aquests patrons és MVC també conegut com Controlador de vista del model.

Què és MVC?

El Model-View-Controller (MVC) framework és un patró arquitectònic/de disseny que separa una aplicació en tres components lògics principals Model , Veure , i Controlador . Cada component arquitectònic es construeix per gestionar aspectes de desenvolupament específics d'una aplicació. Aïlla la lògica empresarial i la capa de presentació entre si. S'utilitzava tradicionalment per a l'escriptori interfícies gràfiques d'usuari (GUI) . Avui en dia, MVC és un dels marcs de desenvolupament web estàndard de la indústria més utilitzats per crear projectes escalables i extensibles. També s'utilitza per dissenyar aplicacions mòbils.



MVC va ser creat per Trygve Reenskaug . L'objectiu principal d'aquest patró de disseny era resoldre el problema dels usuaris que controlen un conjunt de dades gran i complex dividint una aplicació gran en seccions específiques que tenen totes les seves pròpies finalitats.

Característiques de MVC:

  • Proporciona una clara separació de lògica de negoci, lògica d'IU i lògica d'entrada.
  • Ofereix un control total sobre el vostre HTML i URL, cosa que facilita el disseny de l'arquitectura d'aplicacions web.
  • És un potent component de mapatge d'URL amb el qual podem crear aplicacions que tinguin URL comprensibles i cercables.
  • Dóna suport Desenvolupament impulsat per proves (TDD).

Per obtenir més informació sobre els avantatges d'utilitzar el marc MVC, consulteu l'article: Beneficis d'utilitzar el marc MVC

Components de MVC:

El marc MVC inclou els 3 components següents:



  • Controlador
  • Model
  • Veure

Disseny d'arquitectura MVC

Controlador:

El controlador és el component que permet la interconnexió entre les vistes i el model per la qual cosa actua com a intermediari. El controlador no s'ha de preocupar de manejar la lògica de dades, només li diu al model què ha de fer. Processa tota la lògica de negoci i les sol·licituds entrants, manipula les dades mitjançant el Model component i interactuar amb el Veure per representar la sortida final.

data java actual

Visualització:

El Veure s'utilitza per a tota la lògica de la interfície d'usuari de l'aplicació. Genera una interfície d'usuari per a l'usuari. Les vistes les creen les dades que recull el component del model, però aquestes dades no es prenen directament sinó a través del controlador. Només interactua amb el controlador.



Model:

El Model component correspon a tota la lògica relacionada amb les dades amb què treballa l'usuari. Això pot representar les dades que s'estan transferint entre els components View i Controller o qualsevol altra dada relacionada amb la lògica empresarial. Pot afegir o recuperar dades de la base de dades. Respon a la sol·licitud del controlador perquè el controlador no pot interactuar amb la base de dades per si mateix. El model interactua amb la base de dades i retorna les dades requerides al controlador.

Treball del marc MVC amb un exemple:

Imaginem que un usuari final envia una sol·licitud a un servidor per obtenir una llista dels estudiants que estudien en una classe. Aleshores, el servidor enviaria aquesta sol·licitud a aquell controlador en particular que gestiona els estudiants. Aleshores, aquest controlador demanaria al model que gestiona els estudiants que torni una llista de tots els estudiants que estudien en una classe.

El flux de dades en components MVC

El model demanaria a la base de dades la llista de tots els estudiants i després retornaria aquesta llista al controlador. Si la resposta del model tenia èxit, el controlador demanaria a la vista associada als estudiants que retornés una presentació de la llista d'estudiants. Aquesta vista agafaria la llista d'estudiants del controlador i representaria la llista en HTML que pot utilitzar el navegador.

matemàtiques pow java

Aleshores, el controlador prendria aquesta presentació i la tornaria a l'usuari. Així finalitza la petició. Si abans el model retornava un error, el controlador gestionaria aquest error demanant a la vista que gestiona els errors que faci una presentació d'aquest error en particular. Aleshores, aquesta presentació d'error es retornaria a l'usuari en lloc de la presentació de la llista d'estudiants.

Com podem veure a l'exemple anterior, el model gestiona totes les dades. La vista gestiona totes les presentacions i el controlador només indica el model i la vista del que cal fer. Aquesta és l'arquitectura bàsica i el funcionament del marc MVC.

El patró arquitectònic MVC ens permet adherir-nos als següents principis de disseny:
1. Divideix i conquereix. Els tres components es poden dissenyar de manera independent.
2. Augmentar la cohesió. Els components tenen una cohesió de capa més forta que si la vista i el controlador estiguessin junts en una sola capa d'IU.
3. Reduir l'acoblament. Els canals de comunicació entre els tres components són mínims i fàcils de trobar.
4. Augmentar la reutilització. La vista i el controlador normalment fan un ús extensiu de components reutilitzables per a diversos tipus de controls d'IU. La interfície d'usuari, però, esdevindrà específica de l'aplicació, per tant, no serà fàcilment reutilitzable.
5. Disseny per a la flexibilitat. En general, és bastant fàcil canviar la interfície d'usuari canviant la vista, el controlador o tots dos.

Avantatges de MVC:

  • Els codis són fàcils de mantenir i es poden ampliar fàcilment.
  • El MVC model component es pot provar per separat.
  • Els components de MVC es poden desenvolupar simultàniament.
  • Redueix la complexitat dividint una aplicació en tres unitats. Model, vista i controlador.
  • Dóna suport Desenvolupament impulsat per proves (TDD).
  • Funciona bé per a aplicacions web que són compatibles amb grans equips de dissenyadors i desenvolupadors web.
  • Aquesta arquitectura ajuda a provar components de manera independent, ja que totes les classes i objectes són independents els uns dels altres
  • Optimització per a motors de cerca (SEO) Amable.

Desavantatges de MVC:

  • És difícil llegir, canviar, provar i reutilitzar aquest model
  • No és adequat per construir aplicacions petites.
  • La ineficiència de l'accés a les dades en vista.
  • La navegació del marc pot ser complexa ja que introdueix noves capes d'abstracció que requereixen que els usuaris s'adaptin als criteris de descomposició de MVC.
  • Augment de la complexitat i ineficiència de les dades

Marcs MVC populars:

A continuació s'enumeren alguns dels marcs MVC més populars i àmpliament utilitzats.

  • Ruby on Rails
  • Django
  • CherryPy
  • Primavera MVC
  • Catalitzador
  • Rieles
  • Framework Zend
  • Combustible PHP
  • Laravel
  • Simfonia

MVC s'utilitza generalment en aplicacions que s'executen en una única estació de treball gràfica. La divisió de components lògics permet la llegibilitat i la modularitat, així com la fa més còmoda per a la part de prova.