Modelo – vista – controlador


Modelo-vista-controlador ( MVC ) es un patrón de diseño de software [1] comúnmente utilizado para desarrollar interfaces de usuario que dividen la lógica del programa relacionado en tres elementos interconectados. Esto se hace para separar las representaciones internas de información de las formas en que la información se presenta al usuario y la acepta. [2] [3]

Este patrón, utilizado tradicionalmente para interfaces gráficas de usuario (GUI) de escritorio , se hizo popular para diseñar aplicaciones web . [4] Los lenguajes de programación populares tienen marcos MVC que facilitan la implementación del patrón.

MVC, una de las ideas fundamentales en el desarrollo temprano de interfaces gráficas de usuario, se convirtió en uno de los primeros enfoques para describir e implementar construcciones de software en términos de sus responsabilidades . [5]

Trygve Reenskaug introdujo MVC en Smalltalk -79 mientras visitaba el Centro de Investigación Xerox Palo Alto (PARC) [6] [7] en la década de 1970. En la década de 1980, Jim Althoff y otros implementaron una versión de MVC para la biblioteca de clases Smalltalk-80. Solo más tarde, un artículo de 1988 en The Journal of Object Technology (JOT) expresó MVC como un concepto general. [8]

El patrón MVC evolucionó posteriormente, [9] dando lugar a variantes como modelo jerárquico-vista-controlador (HMVC), modelo-vista-adaptador (MVA), modelo-vista-presentador (MVP), modelo-vista-modelo de vista (MVVM ), y otros que adaptaron MVC a diferentes contextos.

El uso del patrón MVC en aplicaciones web creció después de la introducción de NeXT 's WebObjects en 1996, que fue escrito originalmente en Objective-C (que prestado en gran medida de Smalltalk) y ayudó a hacer cumplir los principios MVC. Más tarde, el patrón MVC se hizo popular entre los desarrolladores de Java cuando WebObjects se transfirió a Java . Los marcos posteriores para Java, como Spring (lanzado en octubre de 2002), continuaron el fuerte vínculo entre Java y MVC. La introducción de los frameworks Django (julio de 2005, para Python ) y Rails (diciembre de 2005, para Ruby), que tenían un fuerte énfasis en la implementación rápida, aumentaron la popularidad de MVC fuera del entorno empresarial tradicional en el que ha sido popular durante mucho tiempo.


Diagrama de interacciones dentro del patrón MVC