Modelo–vista–controlador

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 las punteadas una indirecta (por ejemplo, patrón Observer).

El modelo–vista–controlador (MVC) es un patrón de arquitectura de software, que separa los datos y la lógica de negocio de una aplicación de la interfaz de usuario 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.[4]


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[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.
Other Languages
azərbaycanca: Model-View-Controller
български: Model-View-Controller
Ελληνικά: Model-view-controller
Bahasa Indonesia: MVC
latviešu: MVC
монгол: Model View Controller
português: MVC
русский: Model-View-Controller
srpskohrvatski / српскохрватски: Model–view–controller
српски / srpski: MVC arhitektura
тоҷикӣ: Model-View-Controller
Tiếng Việt: MVC
中文: MVC