#MVC = Model-View-Controller
##Contexto La interfaz de usuario es usualmente la parte más frecuentemente modificada de una aplicación interactiva. Por esta razón, es importante mantener las modificaciones a la interfaz de usuario separadas del resto del sistema. Los usuarios pueden querer ver los mismos datos desde distintas perspectivas, como en un gráfico de barras o de torta. Estas representaciones deberían reflejar el mismo estado actual de los datos.
##Problema Cómo se puede mantener la funcionalidad de interaz de usuario separada de la funcionalidad de la aplicación y aún poder responder a acciones del usuario o cambios a los datos de la aplicación? Y cómo pueden crearse, mantenerse y coordinarse las múltiples representaciones de los datos cuando estos cambien?
##Solución El patrón Model-View-Controller (MVC) separa la funcionalidad de aplicación en tres tipos de componentes: