franciscogazitua / IIC2113-2024

Consultas sobre el proyecto en las Issues
3 stars 0 forks source link

Implementación MVC #81

Open isidoraabumohors opened 3 months ago

isidoraabumohors commented 3 months ago

Hola!

Tengo una duda respecto a cómo implementar el modelo vista controlador. ¿Debemos crear tres proyectos distintos, uno para cada componente? ¿O dentro del mismo proyecto FireEmblem podemos crear una clase para el controlador y una para el modelo, y utilizar el proyecto que ya viene en el código base (FireEmbelmView) para implementar la vista? Sería buenísimo si me pueden aclarar esto.

Gracias y saludos!

RodrigoToroIcarte commented 3 months ago

Hay muchas formas de implementar MVC. Pero, en mi opinión, lo más fácil es que tengas un proyecto para el modelo, uno para la vista y uno para el controlador. Puedes reutilizar el proyecto FireEmblemView para la vista. No hay problema con eso.

También mira la clase del jueves pasado (creo que eres de mi sección). Es la clase _Clase_16_SolidP1.pdf. No sé qué tanto se entienda sin mi explicación, pero ahí tengo un ejemplo donde parto de una entrega casi vacía. Solo tiene la lógica para mostrar los archivos y pedirle el equipo al usuario. Luego creo un proyecto para el modelo y muevo la lógica para pedirle el equipo al usuario al proyecto de la vista (porque eso es responsabilidad de la vista).

Luego sigo construyendo sobre ese ejemplo. Ahora agrego lógica para los neutralizadores. Al inicio los neutralizadores tienen un método Show() por lo que necesitan la vista. Discuto que eso debería ser parte de la vista, así que elimino ese método. Ahora que el neutralizador no depende de la vista puede ser pasado al modelo. Muevo los neutralizadores al modelo. La gracia de hacer eso es que ahora puedo poner un método en la vista que reciba un neutralizador. Y así poder mostrar toda su info sin tener que recibir un montón de argumentos en ese método.

Esa es mi explicación muy resumida. Si tienes dudas nos dices.

P.S: Igual me gustaría recalcar que hay más formas de implementar MVC. Pero usar tres proyectos creo que es lo más fácil considerando que ya tienen la vista en un proyecto separado.

isidoraabumohors commented 3 months ago

Perfecto! Muchas gracias