El código actual no permite agregar nuevos tipos de personajes (por ejemplo, enemigos adicionales o personajes jugables distintos) sin modificar las clases existentes. Esto viola el principio de Abierto/Cerrado, ya que el sistema está cerrado a la extensión y abierto a la modificación.
Problemas encontrados:
Los personajes (Pacman, Ghost) están definidos explícitamente dentro del código del Board o GameController.
Para agregar un nuevo personaje, se deben modificar los métodos move(), draw(), o updateGame().
Impacto:
Riesgo de introducir errores al modificar clases estables.
Dificultad para escalar el juego con nuevos tipos de personajes o comportamientos.
Dependencia rígida de tipos concretos.
Propuesta de solución:
Crear una interfaz o clase abstracta Character con los métodos comunes:
interface Character {
void move();
void draw(Graphics2D g);
}
Y hacer que las clases Pacman, Ghost y futuras (PowerGhost, SuperPacman, etc.) implementen esta interfaz. De este modo, se podrán agregar nuevos personajes sin modificar el código base.
El código actual no permite agregar nuevos tipos de personajes (por ejemplo, enemigos adicionales o personajes jugables distintos) sin modificar las clases existentes. Esto viola el principio de Abierto/Cerrado, ya que el sistema está cerrado a la extensión y abierto a la modificación.
Problemas encontrados:
Impacto:
Propuesta de solución:
Crear una interfaz o clase abstracta Character con los métodos comunes:
interface Character {
void move();
void draw(Graphics2D g);
}
Y hacer que las clases Pacman, Ghost y futuras (PowerGhost, SuperPacman, etc.) implementen esta interfaz. De este modo, se podrán agregar nuevos personajes sin modificar el código base.