====== Modelo-Vista-Controlador (MVC) ====== Patrón de arquitectura de software, que separa los datos y principalmente lo que es la lógica de negocio de una aplicación de su representación y el módulo encargado de gestionar los eventos y las comunicaciones Para ello, MVC propone la construcción de tres componentes distintos que son el **modelo**, la **vista** y el **controlador**, es decir, por un lado define componentes para la representación de la información, y por otro lado para la interacción del usuario. Este patrón de arquitectura de software se basa en las ideas de reutilización de código y la separación de conceptos, características que buscan facilitar la tarea de desarrollo de aplicaciones y su posterior mantenimiento. ===== Modelo ===== En MVC, el modelo es responsable de realizar la lógica de negocios de la aplicación. Por lo tanto, debe incluir todas las lógicas y la implementación de las operaciones de la aplicación que no son específicas de la interfaz de usuario o del controlador. Algunos ejemplos de cosas que el modelo puede incluir son: * Lógica para validar y procesar datos antes de enviarlos a la vista * Acceso a bases de datos o servicios web para obtener o almacenar datos * Cálculos complejos o consultas a datos externos que son necesarios para la aplicación * Enrutamiento de solicitudes a otros controladores o modelos * Lógica para manejar errores y excepciones En resumen, el modelo debe incluir todo lo que esté relacionado con la lógica de negocios de la aplicación, excepto la interfaz de usuario o la implementación de la interfaz de usuario. De esta manera, el controlador y la vista pueden centrarse en la interfaz de usuario y la presentación de datos, mientras que el modelo se encarga de la lógica de negocios y la implementación de operaciones.