Asunto: Tarea4 - Code Smell Nota: Es parte de un deber, siéntete libre de ignorar.
CodeSmell: Large class
Repositorio: juego-2d-java
Justificación de Problema: La clase Dijkstra contiene varios métodos que ejercen diferentes funcionalidades. La acumulación de métodos podría llegar a complicar el entendimiento de la clase. Es posible también que se complique la reutilización de código en otras partes del programa lo que podría llevar a la necesidad de mantenimiento al código.
Las responsabilidades de los diferentes métodos van desde el constructor, la obtención del nodo, evaluación del mapa del juego, encontrar nodos vecinos.
Técnica de refactorización: Extract Class
Solución:
Pasamos de tener una sola clase con muchas funciones a subdividirlas en clases más pequeñas y específicas.
Nota: Esto es un ejemplo de como organizarlo.





Beneficios de Refactorizar: Dividir la clase en otras más pequeñas facilitara la comprensión del código de manera que se facilitara la reutilización de código dentro del programa. Facilita el mantenimiento del programa al contar con clases más simplificadas y especificas sin que los cambios afecten a otras partes del código.
Asunto: Tarea4 - Code Smell Nota: Es parte de un deber, siéntete libre de ignorar.
CodeSmell: Large class
Repositorio: juego-2d-java
Justificación de Problema: La clase Dijkstra contiene varios métodos que ejercen diferentes funcionalidades. La acumulación de métodos podría llegar a complicar el entendimiento de la clase. Es posible también que se complique la reutilización de código en otras partes del programa lo que podría llevar a la necesidad de mantenimiento al código.
Las responsabilidades de los diferentes métodos van desde el constructor, la obtención del nodo, evaluación del mapa del juego, encontrar nodos vecinos.
Técnica de refactorización: Extract Class

Solución:
Pasamos de tener una sola clase con muchas funciones a subdividirlas en clases más pequeñas y específicas.
Nota: Esto es un ejemplo de como organizarlo.
Beneficios de Refactorizar: Dividir la clase en otras más pequeñas facilitara la comprensión del código de manera que se facilitara la reutilización de código dentro del programa. Facilita el mantenimiento del programa al contar con clases más simplificadas y especificas sin que los cambios afecten a otras partes del código.