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.
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'.
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'
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.