
El MVC es un patrón de diseño que permite la implementación de arquitecturas de software escalables, de tal manera que dichos software puedan ser mantenibles a largo plazo sin demasiado esfuerzo, enfoncándose así en la separación de capas que desacoplen parcialmente el código, de tal manera que sea más comprensible. Dicho lo anterior, veamos a más detalle este tema.
Modelo
Es el componente del MVC que se encarga de gestionar los datos, en este sentido, serán clases que reflejen como si de un espejo se tratara, a las tablas de la base de datos, de tal manera que si se afecta a los datos de estas clases, bajo una simple instrucción, se modificarían los datos en la base de datos con la que se da la conexión; entonces, también podremos afirmar que esto funcionaría para casos de persistencia como creación, listado, actualización y eliminación de datos.
Las características de esta capa son las siguientes:
- Acceso a la base de datos a través de modelos (clases espejo de tablas).
- Independiente y son conocimiento de la interfaz gráfica.
- Afectación de registro de tablas en base de datos, mediante cambios en clases de tipo modelo.
- No maneja lógica de negocio (esto último es considerado que sí en varias fuentes, pero nosotros no estamos de acuerdo, ya que la lógica de negocio debe llevar el controlador).
Vista
Es el componente del MVC que se encarga de mostrar los datos al usuario final, de tal manera que este mostrará la información con un diseño vistoso y legible (siempre y cuando sea desarrollado de manera funcional); por ejemplo, podemos afirmar que aquí se encontraría la parte del HTML, CSS y JavaScript de lado del cliente.
Las características de esta capa son las siguientes:
- Muestra datos de los modelos, al usuario final.
- No maneja lógica de programación.
- Gestiona la interactividad directa con el cliente (interacción con botones, campos de entrada y demás).
Controlador
Es el componente del MVC que se encargará de la parte lógica de la aplicación, aunque en varias fuentes indican que el controlador solo funciona como un orquestador de datos, esto no es cierto del todo desde nuestra perspectiva, ya que en un patrón de arquitectura (o en este caso que estamos definiendo como patrón de diseño) MVC, sería donde el controlador maneja la lógica completa, por la carga de información que deberá llevar, sin embargo, un controlador en una arquitectura en N capas, llevada a un nivel de un Diseño Guiado por el Dominio, es donde sí se convertiría el controlador en no más que un simple orquestador; dicho lo anterio, debemos entender cuidadosamente cuándo es que un controlador se maneja como un orquestador o como una capa de lógica de negocio, siendo que en el MVC, tomaría el segundo rol.
Las características de esta capa son las siguientes:
- Manejo de la lógica de negocio.
- Nexo entre la vista y el modelo.
- Validación de datos y negocio (esto puede ser separado preferentemente en subcapas).
Flujo de trabajo
El flujo de trabajo del MVC en función a las conexiones lógicas, podemos representarlo de la siguiente manera:
Usuario → Vista → Controlador → Modelo → Base de datos
Base de datos → Modelo → Controlador → Vista → Usuario
CONCLUSIÓN
Visto lo anterior, podemos afirmar que el MVC es un patrón de diseño o patrón de arquitectura muy adecuado para implementarlo en diversos proyectos de software que requieran una separación coherente de sus componentes, no es que sea necesariamente la mejor manera, ya que esto dependerá más de las necesidades del proyecto que de un patrón de diseño en sí, sin embargo, este patrón es una buena opción para implementarlo en el desarrollo de sistemas de información de pequeña y mediana escala, además, también podría implementarse en proyectos de gran escala, en combinación de otros patrones que manejen alta concurrencia, por lo que un buen manejo de este, será un plus en la escalabilidad y modularidad del software que se vaya a desarrollar.

- Debes estar logueado para realizar comentarios