Java-Pacman-Game icon indicating copy to clipboard operation
Java-Pacman-Game copied to clipboard

Implementar interfaz Character para permitir extensión sin modificar código (OCP)

Open Guroven opened this issue 2 months ago • 0 comments

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.

Guroven avatar Oct 26 '25 18:10 Guroven