Saltar apartados

Model - Vista - Controlador

Si desitges més informació sobre el Model-Vista-Controlador pots visitar les següents pàgines:

La informació que es mostra a continuació s'ha extraido d'estàs pàgines.

Model Vista Controlador (MVC) és un estil d'arquitectura de programari que separa les dades d'una aplicació, la interfície d'usuari, i la lògica de control en tres components diferents.

Es tracta d'un model molt madur i que ha demostrat la seua validesa al llarg dels anys en tot tipus d'aplicacions, i sobre multitud de llenguatges i plataformes de desenvolupament.

  • El Model que conté una representació de les dades que maneja el sistema, la seua lògica de negoci, i els seus mecanismes de persistència.
  • La Vista , o interfície d'usuari, que compon la informació que s'envia al client i els mecanismes interacció amb aquest.
  • El Controlador, que actua com a intermediari entre el Model i la Vista, gestionant el flux d'informació entre ells i les transformacions per a adaptar les dades a les necessitats de cadascun.

  1. El model és el responsable de:
  • Accedir a la capa d'emmagatzematge de dades. L'ideal és que el model siga independent del sistema d'emmagatzematge.
  • Defineix les regles de negoci (la funcionalitat del sistema). Un exemple de regla pot ser: "Si la mercaderia demanada no està en el magatzem, consultar el temps de lliurament estàndard del proveïdor".
  • Porta un registre de les vistes i controladors del sistema.
  • Si estem davant un model actiu, notificarà a les vistes els canvis que en les dades puga produir un agent extern (per exemple, un fitxer per lots que actualitza les dades, un temporitzador que desencadena una inserció, etc.).

  1. El controlador és responsable de:
  • Rep els esdeveniments d'entrada (un clic, un canvi en un camp de text, etc.).
  • Conté regles de gestió d'esdeveniments, del tipus "SI Esdeveniment Z, llavors Acció W". Aquestes accions poden suposar peticions al model o a les vistes. Una d'aquestes peticions a les vistes pot ser una trucada al mètode "Actualitzar()". Una petició al model pot ser "Obtenir_temps_de_lliurament ( nova_ordre_de_venda )".

  1. Les vistes són responsables de:
  • Rebre dades del model i els mostra a l'usuari.
  • Tenen un registre del seu controlador associat (normalment perquè a més ho instància).
  • Poden donar el servei "d'Actualització()", perquè siga invocat pel controlador o pel model (quan és un model actiu que informa dels canvis en les dades produïdes per altres agents).

El flux que segueix el control generalment és el següent:

Esquema del flujo de una aplicación MVC

  1. L'usuari interactua amb la interfície d'usuari d'alguna forma (per exemple, l'usuari prem un botó, enllaç, etc.)
  2. El controlador rep (per part dels objectes de la interfície-vestisca) la notificació de l'acció sol·licitada per l'usuari. El controlador gestiona l'esdeveniment que arriba, freqüentment a través d'un gestor d'esdeveniments (handler) o callback.
  3. El controlador accedeix al model, actualitzant-ho, possiblement modificant-ho de forma adequada a l'acció sol·licitada per l'usuari (per exemple, el controlador actualitza el carro de la compra de l'usuari). Els controladors complexos estan sovint estructurats usant un patró de comando que encapsula les accions i simplifica la seua extensió.
  4. El controlador delega als objectes de la vista la tasca de desplegar la interfície d'usuari. La vista obté les seues dades del model per a generar la interfície apropiada per a l'usuari on es reflecteix els canvis en el model (per exemple, produeix un llistat del contingut del carro de la compra). El model no ha de tenir coneixement directe sobre la vista. No obstant això, es podria utilitzar el patró Observador per a proveir certa indirección entre el model i la vista, permetent al model notificar als interessats de qualsevol canvi. Un objecte vestisca pot registrar-se amb el model i esperar als canvis, però així i tot el model en si mateix segueix sense saber gens de la vista. El controlador no passa objectes de domini (el model) a la vista encara que pot donar l'ordre a la vista perquè s'actualitze. Nota: En algunes implementacions la vista no té accés directe al model, deixant que el controlador envie les dades del model a la vista.
  5. La interfície d'usuari espera noves interaccions de l'usuari, començant el cicle novament.

Servei d'Informàtica ASP.NET MVC 2 Framework


Universitat d'Alacant
Carretera de Sant Vicent del Raspeig s/n
03690 Sant Vicent del Raspeig
Alacant (Spain)

Tel: (+34) 96 590 3400

Fax: (+34) 96 590 3464

Per a més informació: informacio@ua.es, i per a temes relacionats amb aquest servidor web: webmaster@ua.es

Carretera de Sant Vicent del Raspeig, s/n - 03690 Sant Vicent del Raspeig - Alacant - Tel.: 96 590 3400 - Fax: 96 590 3464