La mayoria, por no decir todos, de los frameworks para la web implementan este patrón.
Este estilo fue descrito por primera vez en 1979 por Trague Reenskaug, entonces trabajando en Smalltalk en laboratorios de investigación de Xeros. la implementacion original esta descrita Programación de aplicaciones en Smalltalk-80 (TM).
El patrón MVC (Modelo Vista Controlador) es un estilo de arquitectura software que separa los datos de una aplicación, y la lógica de control en tres componentes distintos. La vista en las aplicaciones web la podemos ver en las páginas HTML y el código que provee de datos dinamicos de la página. El modelo es el sistema de gestion de bases de datos y la lógica de negocio, y el controlador es el responsable de recibir los eventos de entrada desde la vista.
El principal objetivo de este patrón es la división de responsabilidades separando lo lógica, el acceso a datos y la parte de presentación o interfaz permitiendo construir sistemas mas robustos y fáciles de mantener y extender.
En la imagen se puede apreciar los tres componetes del modelo
- Model: representa los datos de la aplicación y sus reglas de negocio.
- View: es un conjunto de vistas que representa los formularios de entrada y salida de información.
- Controller: procesa las peticiones de los usuarios y controla el flujo de ejecución del sistema.