Open TomasRiquelme opened 1 month ago
¡Buenas!
No es necesario cambiar el AbstractView
para hacer lo que quieres. Basta con agregar los métodos extra a la clase View
porque desde Game
tienes acceso a una instancia de View
(que tiene como atributo un objeto que hereda de AbstractView
). Si agregaras los métodos al AbstractView
tendrías que agregar alguna forma de acceder desde Game
al AbstractView
dentro de View
-- que es innecesariamente complicado :P
Igual, yo no recomiendo modificar ni View
ni AbstractView
. Esas son clases que tienen una responsabilidad bien definida (que es recordar el input/output para ser comparado con los test cases... por eso View
tiene el método GetScript()
).
Mi recomendación es definir otras clases de tipo vista que reciban el View
y tengan los métodos que quieres. Por ejemplo, un TeamSelectionView
que tenga los métodos relacionados al input/output para seleccionar a los equipos. O un NeutralizerView
que tenga los métodos para el input/output de los neutralizadores.
En todo caso, mientras separes los métodos de la vista del controlador/modelo vas a estar bien. Más adelante puede que descubras que era mejor tener varias vistas (como lo que te estoy recomendando). Pero hacer ese cambio te resultará fácil si ya tienes todos los métodos asociados a la vista en View
. Será cosa de mover código no más :)
Muchisimas gracias :D! Ahora tengo una mejor idea de como hacerlo PD: muchas gracias por responder en semana de receso uwu
Buenos dias! Estaba en proceso de limpiar el código, y pensando en lo visto en clases sobre modelo-vista-controlador; se me ocurrió pasarle al _view de Game todos los metodos relacionados a "mostrar" y "recibir input".
Sabiendo que abstract view es el de los metodos WriteLine y Readline ¿debería modificar esa clase para que tenga esos metodos o deberia modificar View, por ejemplo? Muchas gracias :D