Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

MVC - Info Exposición - Lenguaje III

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 7

Modelo–vista–controlador

Patrón de arquitectura de Software

Modelo-vista-controlador (MVC) es un patrón de arquitectura de software, que separa


los datos y principalmente lo que es la lógica de negocio de una aplicación de su
representación y el módulo encargado de gestionar los eventos y las comunicaciones. Para
ello MVC propone la construcción de tres componentes distintos que son el modelo,
la vista y el controlador, es decir, por un lado define componentes para la representación
de la información, y por otro lado para la interacción del usuario. [1][2] Este patrón
de arquitectura de software se basa en las ideas de reutilización de código y la separación
de conceptos, características que buscan facilitar la tarea de desarrollo de aplicaciones y su
posterior mantenimiento.[3][4]

Un diagrama sencillo que muestra la relación entre el modelo, la vista y el controlador. Nota: las
líneas sólidas indican una asociación directa, y principalmente las punteadas una indirecta (por
ejemplo, patrón Observer).

Historia
El patrón MVC fue una de las primeras ideas en el campo de las interfaces gráficas de
usuario y uno de los primeros trabajos en describir e implementar aplicaciones
software en términos de sus diferentes funciones. [5]
MVC fue introducido por Trygve Reenskaug (web personal) en Smalltalk-76 durante su
visita a Xerox Parc[6][7] en los años 70, seguidamente, en los años 80, Jim Althoff y
otros implementaron una versión de MVC para la biblioteca de clases de Smalltalk-
80.[8] Solo más tarde, en 1988, MVC se expresó como un concepto general en un
artículo[9] sobre Smalltalk-80.
En esta primera definición de MVC el controlador se definía como «el módulo que
se ocupa de la entrada» (de forma similar a como la vista «se ocupa de la salida»).
Esta definición no tiene cabida en las aplicaciones modernas en las que esta
funcionalidad es asumida por una combinación de la 'vista' y
algún framework moderno para desarrollo. El 'controlador', en las aplicaciones
modernas de la década de 2000, es un módulo o una sección intermedia de
código, que hace de intermediario de la comunicación entre el 'modelo' y la 'vista',
y unifica la validación (utilizando llamadas directas o el «observer» para desacoplar
el 'modelo' de la 'vista' en el 'modelo' activo [10]).
Algunos aspectos del patrón MVC han evolucionado dando lugar a ciertas
variantes del concepto original, ya que «las partes del MVC clásico realmente no
tienen sentido para los clientes actuales»: [11]
 HMVC (MVC Jerárquico)
 MVA (Modelo-Vista-Adaptador)
 MVP (Modelo-Vista-Presentador)
 MVVM (Modelo-Vista Vista-Modelo)
 ... y otros que han adaptado MVC a diferentes contextos.

Descripción del patrón

De manera genérica, los componentes de MVC se podrían definir como sigue:

 El Modelo: Es la representación de la información con la cual el sistema opera, por lo tanto


gestiona todos los accesos a dicha información, tanto consultas como actualizaciones,
implementando también los privilegios de acceso que se hayan descrito en las
especificaciones de la aplicación (lógica de negocio). Envía a la 'vista' aquella parte de la
información que en cada momento se le solicita para que sea mostrada (típicamente a un
usuario). Las peticiones de acceso o manipulación de información llegan al 'modelo' a
través del 'controlador'.[12]
 El Controlador: Responde a eventos (usualmente acciones del usuario) e invoca peticiones
al 'modelo' cuando se hace alguna solicitud sobre la información (por ejemplo, editar un
documento o un registro en una base de datos). También puede enviar comandos a su 'vista'
asociada si se solicita un cambio en la forma en que se presenta el 'modelo' (por ejemplo,
desplazamiento o scroll por un documento o por los diferentes registros de una base de
datos), por tanto se podría decir que el 'controlador' hace de intermediario entre la 'vista' y
el 'modelo' (véase Middleware).
 La Vista: Presenta el 'modelo' (información y lógica de negocio) en un formato adecuado
para interactuar (usualmente la interfaz de usuario), por tanto requiere de dicho 'modelo' la
información que debe representar como salida
Una típica colaboración entre los componentes de un MVC

Interacción de los componentes

Aunque se pueden encontrar diferentes implementaciones de MVC, el flujo de


control que se sigue generalmente es el siguiente:

1. El usuario interactúa con la interfaz de usuario de alguna forma (por ejemplo, el usuario
pulsa un botón, enlace, etc.)
2. El controlador recibe (por parte de los objetos de la interfaz-vista) la notificación de la
acción solicitada por el usuario. El controlador gestiona el evento que llega, frecuentemente
a través de un gestor de eventos (handler) o callback.
3. El controlador accede al modelo, actualizándolo, posiblemente modificándolo de forma
adecuada a la acción solicitada por el usuario (por ejemplo, el controlador actualiza el carro
de la compra del usuario). Los controladores complejos están a menudo estructurados
usando un patrón de comando que encapsula las acciones y simplifica su extensión.
4. El controlador delega a los objetos de la vista la tarea de desplegar la interfaz de usuario. La
vista obtiene sus datos del modelo para generar la interfaz apropiada para el usuario donde
se reflejan los cambios en el modelo (por ejemplo, produce un listado del contenido del
carro de la compra). El modelo no debe tener conocimiento directo sobre la vista. Sin
embargo, se podría utilizar el patrón Observador para proveer cierta indirección entre el
modelo y la vista, permitiendo al modelo notificar a los interesados de cualquier cambio.
Un objeto vista puede registrarse con el modelo y esperar a los cambios, pero aun así el
modelo en sí mismo sigue sin saber nada de la vista. Este uso del patrón Observador no es
posible en las aplicaciones Web puesto que las clases de la vista están desconectadas del
modelo y del controlador. En general el controlador no pasa objetos de dominio (el modelo)
a la vista aunque puede dar la orden a la vista para que se actualice. Nota: En algunas
implementaciones la vista no tiene acceso directo al modelo, dejando que el controlador
envíe los datos del modelo a la vista. Por ejemplo en el MVC usado por Apple en su
framework Cocoa. Suele citarse como Modelo-Interface-Control, una variación del MVC
más puro
5. La interfaz de usuario espera nuevas interacciones del usuario, comenzando el ciclo
nuevamente..

MVC y bases de datos

Muchos sistemas [informáticos] utilizan un sistema de gestión de base de datos el cual


gestiona los datos que debe utilizar la aplicación; en líneas generales del MVC dicha
gestión corresponde al modelo. La unión entre capa de presentación y capa de
negocio conocido en el paradigma de la Programación por capas representaría la
integración entre la Vista y su correspondiente Controlador de eventos y acceso a datos,
MVC no pretende discriminar entre capa de negocio y capa de presentación pero sí
pretende separar la capa visual gráfica de su correspondiente programación y acceso a
datos, algo que mejora el desarrollo y mantenimiento de la Vista y el Controlador en
paralelo, ya que ambos cumplen ciclos de vida muy distintos entre sí.

Uso en aplicaciones Web

Aunque originalmente MVC fue desarrollado para aplicaciones de escritorio, ha


sido ampliamente adaptado como arquitectura para diseñar e
implementar aplicaciones web en los principales lenguajes de programación. Se han
desarrollado multitud de frameworks, comerciales y no comerciales, que
implementan este patrón (ver apartado siguiente "Frameworks MVC"); estos
frameworks se diferencian básicamente en la interpretación de como las funciones
MVC se dividen entre cliente y servidor.[13]
Los primeros frameworks MVC para desarrollo web planteaban un enfoque
de cliente ligero en el que casi todas las funciones, tanto de la vista, el modelo y el
controlador recaían en el servidor. En este enfoque, el cliente manda la petición de
cualquier hiperenlace o formulario al controlador y después recibe de la vista una
página completa y actualizada (u otro documento); tanto el modelo como el
controlador (y buena parte de la vista) están completamente alojados en el
servidor. Como las tecnologías web han madurado, ahora existen frameworks
como JavaScriptMVC, Backbone o jQuery[14] que permiten que ciertos componentes
MVC se ejecuten parcial o totalmente en el cliente (véase AJAX).

Fuente: https://es.m.wikipedia.org/wiki/Modelo
%E2%80%93vista%E2%80%93controlador
Imagen fuente:
https://www.freecodecamp.org/espanol/news/el-
modelo-de-arquitectura-view-controller-pattern/amp/

2.3 Ventajas y Desventajas de MVC


Las principales ventajas de hacer uso del patrón MVC
son:

 La separación del Modelo de la Vista, es decir,


separar los datos de la representación visual de los
mismos.
• Es mucho más sencillo agregar múltiples
representaciones de los mismos datos o
información.
• Facilita agregar nuevos tipos de datos según sea
requerido por la aplicación ya que
son independientes del funcionamiento de las otras
capas.
• Crea independencia de funcionamiento.
• Facilita el mantenimiento en caso de errores.
• Ofrece maneras más sencillas para probar el correcto
funcionamiento del sistema.
• Permite el escalamiento de la aplicación en caso de
ser requerido.

Las desventajas de seguir el planteamiento de MVC


son:
• La separación de conceptos en capas agrega
complejidad al sistema.
• La cantidad de archivos a mantener y desarrollar se
incrementa considerablemente.
• La curva de aprendizaje del patrón de diseño es más
alta que usando otros modelos
más sencillos.

Cabe mencionar que la comparación de ventajas y


desventajas de MVC puede ser un tema muy subjetivo y
se puede prestar como tema de debate, sin embargo se
tomó la decisión usando principalmente los puntos
mencionados anteriormente ya que en términos
generales la balanza se inclina a favor del MVC en vez
de en su contra.
Fuente: https://www.google.com/url?
sa=t&source=web&rct=j&url=http://catarina.udlap.m
x/u_dl_a/tales/documentos/lis/rivera_l_a/
capitulo2.pdf&ved=2ahUKEwi4laP98O36AhXVTTABH
fK0BxkQFnoECAgQBg&usg=AOvVaw1GeMamz1RifZ-
IwRiPzeXZ

¿Como implementar el MVC en PHP?

Página opción 1: https://victorroblesweb.es/2013/11/18/tutorial-mvc-en-php-nativo/

Página opción 2: https://www.juntadeandalucia.es/servicios/madeja/contenido/recurso/257

Página opción 3: https://www.adaweb.es/modelo-vista-controlador-mvc-php/


Evolución del Patrón MVC

Como bien sabemos la tecnología evoluciona dia a dia y MVC no es la excepción, en


la actualidad han surgido otras variantes del patrón MVC por un tema de
adaptación a los actuales clientes y lógicas de negocios más modernas, entre las
cuales tenemos

 HMVC (MVC Jerárquico)


 MVA (Modelo Vista Adaptador)
 MVP (Modelo Vista Presentador)
 MVVM (Modelo-Vista Vista-Modelo)

En algunas ocasiones las empresas o desarrolladores de Software suelen variar su


patrón de Software de acuerdo a sus necesidades, siempre bajo la base de MVC.

Conclusión

En la actualidad la mayoría de proyectos de gran envergadura usan el


patrón de arquitectura de Software MVC, es por eso que es muy
importante que sepas de que trata, como funciona y demás detalles que
compartimos contigo en este artículo. Esperamos que esta información te
sirva de mucho en tu carrera como Desarrollador, Ingeniero de Software o
un área relacionada en la cual te encuentres.

Fuente: https://blog.nubecolectiva.com/que-es-mvc-modelo-vista-controlador-y-otros-detalles/
amp/#Evolucion_del_Patron_MVC

También podría gustarte