En los últimos años, los sitios web han pasado de simples páginas HTML con un poco de CSS a aplicaciones increíblemente complejas con miles de desarrolladores trabajando en ellas al mismo tiempo. Para trabajar con estas complejas aplicaciones web, los desarrolladores utilizan diferentes patrones de diseño para diseñar sus proyectos, para que el código sea menos complejo y más fácil de trabajar. El más popular de estos patrones es MVC. también conocido como Controlador de vista de modelo.
¿Qué es MVC?
El Modelo-Vista-Controlador (MVC) framework es un patrón arquitectónico/de diseño que separa una aplicación en tres componentes lógicos principales Modelo , Vista , y Controlador . Cada componente arquitectónico está diseñado para manejar aspectos de desarrollo específicos de una aplicación. Aísla la lógica empresarial y la capa de presentación entre sí. Se usaba tradicionalmente para escritorio. interfaces gráficas de usuario (GUI) . Hoy en día, MVC es uno de los marcos de desarrollo web estándar de la industria más utilizados para crear proyectos escalables y extensibles. También se utiliza para diseñar aplicaciones móviles.
MVC fue creado por Trygve Reenskaug . El objetivo principal de este patrón de diseño era resolver el problema de los usuarios que controlan un conjunto de datos grande y complejo dividiendo una aplicación grande en secciones específicas que tienen su propio propósito.
Características de MVC:
- Proporciona una clara separación de lógica de negocios, lógica de interfaz de usuario y lógica de entrada.
- Ofrece control total sobre su HTML y URL, lo que facilita el diseño de la arquitectura de aplicaciones web.
- Es un potente componente de mapeo de URL mediante el cual podemos crear aplicaciones que tengan URL comprensibles y con capacidad de búsqueda.
- Es compatible Desarrollo basado en pruebas (TDD).
Para saber más sobre los beneficios de usar MVC Framework, consulte el artículo: Beneficios de usar el marco MVC
Componentes de MVC:
El marco MVC incluye los siguientes 3 componentes:
- Controlador
- Modelo
- Vista

Diseño de arquitectura MVC
Controlador:
El controlador es el componente que permite la interconexión entre las vistas y el modelo por lo que actúa como intermediario. El controlador no tiene que preocuparse por manejar la lógica de los datos, simplemente le dice al modelo qué hacer. Procesa toda la lógica empresarial y las solicitudes entrantes, manipula los datos utilizando el Modelo componente e interactuar con el Vista para renderizar el resultado final.
java int como cadena
Vista:
El Vista El componente se utiliza para toda la lógica de interfaz de usuario de la aplicación. Genera una interfaz de usuario para el usuario. Las vistas se crean a partir de los datos que recopila el componente del modelo, pero estos datos no se toman directamente sino a través del controlador. Sólo interactúa con el controlador.
Modelo:
El Modelo El componente corresponde a toda la lógica relacionada con los datos con la que trabaja el usuario. Esto puede representar los datos que se transfieren entre los componentes Vista y Controlador o cualquier otro dato relacionado con la lógica empresarial. Puede agregar o recuperar datos de la base de datos. Responde a la solicitud del controlador porque el controlador no puede interactuar con la base de datos por sí solo. El modelo interactúa con la base de datos y devuelve los datos requeridos al controlador.
Funcionamiento del framework MVC con un ejemplo:
Imaginemos que un usuario final envía una solicitud a un servidor para obtener una lista de los estudiantes que estudian en una clase. Luego, el servidor enviaría esa solicitud a ese controlador en particular que maneja a los estudiantes. Ese controlador luego solicitaría al modelo que maneja a los estudiantes que devuelva una lista de todos los estudiantes que estudian en una clase.
cadena dividida c ++

El flujo de datos en componentes MVC
El modelo consultaría la base de datos para obtener la lista de todos los estudiantes y luego devolvería esa lista al controlador. Si la respuesta del modelo fue exitosa, entonces el controlador pediría a la vista asociada con los estudiantes que devuelva una presentación de la lista de estudiantes. Esta vista tomaría la lista de estudiantes del controlador y la representaría en HTML que puede ser utilizado por el navegador.
Luego, el controlador tomaría esa presentación y se la devolvería al usuario. Finalizando así la petición. Si anteriormente el modelo devolvía un error, el controlador manejaría ese error pidiendo a la vista que maneja los errores que renderice una presentación para ese error en particular. Esa presentación de error se devolvería al usuario en lugar de la presentación de la lista de estudiantes.
Como podemos ver en el ejemplo anterior, el modelo maneja todos los datos. La vista maneja todas las presentaciones y el controlador simplemente le dice al modelo y a la vista qué hacer. Esta es la arquitectura básica y el funcionamiento del marco MVC.
El patrón arquitectónico MVC nos permite cumplir con los siguientes principios de diseño:
1. Divide y conquistaras. Los tres componentes pueden diseñarse de forma algo independiente.
2. Aumentar la cohesión. Los componentes tienen una cohesión de capa más fuerte que si la vista y el controlador estuvieran juntos en una sola capa de UI.
3. Reducir el acoplamiento. Los canales de comunicación entre los tres componentes son mínimos y fáciles de encontrar.
4. Incrementar la reutilización. La vista y el controlador normalmente hacen un uso extensivo de componentes reutilizables para varios tipos de controles de UI. La interfaz de usuario, sin embargo, será específica de la aplicación, por lo que no será fácilmente reutilizable.
5. Diseño para la flexibilidad. Por lo general, es bastante fácil cambiar la interfaz de usuario cambiando la vista, el controlador o ambos.
Ventajas de MVC:
- Los códigos son fáciles de mantener y se pueden ampliar fácilmente.
- El MVC modelo El componente se puede probar por separado.
- Los componentes de MVC se pueden desarrollar simultáneamente.
- Reduce la complejidad al dividir una aplicación en tres unidades. Modelo, vista y controlador.
- Es compatible Desarrollo basado en pruebas (TDD).
- Funciona bien para aplicaciones web respaldadas por grandes equipos de diseñadores y desarrolladores web.
- Esta arquitectura ayuda a probar componentes de forma independiente ya que todas las clases y objetos son independientes entre sí.
- Optimización de motores de búsqueda (SEO) Amigable.
Desventajas de MVC:
- Es difícil leer, cambiar, probar y reutilizar este modelo.
- No es adecuado para crear aplicaciones pequeñas.
- La ineficiencia del acceso a los datos a la vista.
- La navegación del marco puede ser compleja ya que introduce nuevas capas de abstracción que requieren que los usuarios se adapten a los criterios de descomposición de MVC.
- Mayor complejidad e ineficiencia de los datos.
Marcos MVC populares:
Algunos de los marcos MVC más populares y utilizados se enumeran a continuación.
- Ruby on Rails
- Django
- cerezapy
- MVC de primavera
- Catalizador
- Rieles
- Marco Zend
- Combustible PHP
- Laravel
- Sinfonía
mvc se utiliza generalmente en aplicaciones que se ejecutan en una única estación de trabajo gráfica. La división de componentes lógicos permite legibilidad y modularidad, además de hacerla más cómoda para la parte de prueba.