Modelo Vista Controlador

Keywords: Modelo Vista Controlador, Desarrollador, Estabilidad, Interfaz de usuario, Smalltalk, Usabilidad

Modelo Vista Controlador (MVC) es una arquitectura de software que separa el modelo de datos de una aplicación, la interfaz de usuario, y la lógica de control en tres distintos componentes de forma que las modificaciones al componente de la vista pueden ser hechas con un mínimo impacto en el componente del modelo de datos. Esto es útil ya que los modelos tipicamente tienen cierto grado de estabilidad (dependiendo de la estabilidad del dominio del problema que esta siendo modelado), donde el código de la interfaz de usuario el cual usualmente sufre de frecuentes y a veces dramáticos cambios (dependiendo de problemas de usabilidad, la necesidad de soportar clases crecientes de usuarios o simplemente la necesidad de mantener la aplicación viendose como nueva). Separar la vista del modelo hace que el modelo sea más robusto, debido a que el desarrollador esta menos propenso a "romper" el modelo mientras trabaja de nuevo en la vista.

El patrón fue descrito por primera vez en 1979 por Trygve Reenskaug, quién trabajaba en Smalltalk en los laboratorios de investigación de la Xerox.

Aunque se pueden encontrar diferentes implementaciones de MVC, el flujo de control generalmente es el siguiente:

  1. El usuario interactúa con la interfaz de alguna manera (ej. presionando un botón, enlace)
  2. El controlador recibe (por parte de los objetos de la interfaz-vista) la notificación de la acción solicitada por el usuario
  3. El controlador accede al modelo, posiblemente actualizando los datos enviados por el usuario
  4. El controlador delega a los objetos de la vista la tarea de desplegar la interfaz de usuario
  5. La vista usa el modelo para generar la interfaz apropiada para el usuario donde se refleja los cambios en el modelo. 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.
  6. La interfaz espera por nuevas interacciones de usuario para iniciar nuevamente el ciclo.

Las aplicaciones web complejas continúan siendo más difíciles de diseñar que las aplicaciones tradicionales de escritorio, el patrón MVC se presenta como una solución para ayudar a disminuir dicha complejidad.

Keywords: Modelo Vista Controlador, Desarrollador, Estabilidad, Interfaz de usuario, Smalltalk, Usabilidad