"¡Hola, amigo!"

"¡Hola, Bilaabo!"

"Ya eres un programador sólido. Entonces, hoy vamos a tener una lección sobre MVC".

"MVC significa ModelViewController . Es un patrón de diseño arquitectónico para aplicaciones grandes, donde la aplicación se divide en tres partes".

"La primera parte contiene toda la lógica empresarial de la aplicación . Esta parte se denomina modelo . Contiene el código que hace todo para lo que se creó la aplicación. Esta parte es la que menos depende de las demás".

"La segunda parte contiene todo lo relacionado con la visualización de datos para el usuario . Esta parte se denomina vista . Contiene el código que controla la visualización de ventanas, páginas, mensajes, etc."

"La tercera parte contiene el código que procesa las acciones del usuario . Cualquier acción del usuario destinada a cambiar el modelo debe manejarse aquí. Esta parte se llama   Controlador ".

"Este enfoque le permite crear tres cosas de forma independiente:  la lógica del programa (el modelo) , el mecanismo para mostrar los datos del programa al usuario (la vista) y un controlador para la entrada/acciones del usuario (el controlador) ".

"Las aplicaciones suelen tener varias vistas . Esto es normal. Puede ver exactamente los mismos datos en Excel como números y diagramas. En los juegos, puede ver eventos en primera persona, en tercera persona o vista de mapa, además de muchos otros Todas estas son vistas diferentes para un solo modelo .

"Todo el código que decide qué cambiar en el modelo en respuesta a las acciones del usuario se recopila en el controlador . Por ejemplo, si el usuario decide cerrar el programa, debe guardar los datos del modelo en un archivo en el disco. O si el usuario ingresa datos nuevos, debe agregarlos al modelo. El modelo luego notificará a todas las vistas sobre los cambios de datos, por lo que solo mostrarán el estado actual de los datos".

"Repitelo."

"Desde la perspectiva de un desarrollador de Java, podríamos decir que el modelo, la vista y el controlador son tres grupos de clases donde:"

" a)  cada parte tiene su propio propósito;"

b )  las relaciones entre las clases de un solo grupo son muy fuertes;

c )  las relaciones entre los grupos son muy débiles;

" d)  las formas en que las partes se comunican entre sí están fuertemente reguladas".

"Y aquí hay otra manera de imaginarlo:

MVC - 1

"El modelo es la parte más independiente del sistema . No depende de la vista o del controlador. El modelo no puede usar clases de la vista o grupos de controladores (!)".

"La limitación principal de la vista es que no puede cambiar el modelo . Las clases de vista pueden acceder al modelo para obtener datos o suscribirse a eventos, pero las clases de vista no pueden cambiar el modelo".

"La principal limitación del controlador es que no muestra datos . El controlador procesa las acciones del usuario y modifica el modelo en consecuencia".

"¿Pero por qué necesito esto?"

"El hecho de que no uses esto en este momento, no significa que no lo usarás en un futuro cercano. Estás aquí estudiando para conseguir un trabajo. E incluso si este conocimiento no resulta útil mientras estudiando, definitivamente será útil mientras trabajas".

"Después de todo, todavía te esperan proyectos reales y entrevistas..."

"Estamos aquí hablando juntos ahora, pero tal vez en un mes ya estarás trabajando".

"Tienes toda la razón, Bilaabo. Te escucharé atentamente".

"El patrón MVC es muy común en la arquitectura de aplicaciones. Debe conocerlo para no comenzar a agregar clases de vista repentinamente al modelo porque lo encuentra más conveniente".

"Lo más importante en cualquier proyecto es su arquitectura.  Tu tarea en esta etapa no es tanto ser capaz de crear una buena arquitectura, sino aprender a entender la de otra persona. Todavía necesitarás crecer por un tiempo". un par de años antes de crear el tuyo propio. Pero necesitas entender lo que otras personas han creado. Inmediatamente".

"Cuando una aplicación utiliza una arquitectura estándar, todo se vuelve mucho más claro. Al conocer la arquitectura, sabe dónde están las cosas, cómo interactúa todo, aproximadamente cómo funciona el programa, dónde agregar una clase necesaria y dónde buscar la causa de un insecto."

"Pero, si no estás familiarizado con los enfoques estándar de la arquitectura, incluso la mejor arquitectura no te dirá nada. Serás como un campesino de la Edad Media mirando un auto nuevo. Un auto estándar".

"Ya veo. Gracias por la interesante lección, Bilaabo".

"Finalmente, aquí hay un buen enlace que definitivamente deberías revisar:"

Enlace a material adicional