clase BallSpeedAttributes#16
clase BallSpeedAttributes#16mamomeri wants to merge 3 commits intoGlank:masterGlank/Java-Games:masterfrom
Conversation
|
CodeSmell : Message Chains Solución: Aplicamos la refactorización "Ocultar Delegado" (Hide Delegate) en la clase Ball introduciendo métodos de acceso getX() y getY() para obtener las coordenadas de la pelota. Luego, en la clase PongEnvironment, utilizamos estos métodos de acceso en lugar de las cadenas de llamadas directas. |
|
CodeSmell #9: Magic Number Solución: Beneficios: |
Problema Identificado:
En el archivo Ball.java, se observa que los atributos de velocidad (speed), retardo para aceleración (speedUpDelay), y retardo actual (delay) se manejan como valores primitivos directos. Esto puede conducir a falta de abstracción, validación inconsistente y dificultad en la comprensión de su significado y relación con la lógica de la pelota.
Solución:
La solución consiste en aplicar la refactorización "Replace Data Value with Object". Crearemos una clase llamada BallSpeedAttributes que encapsule estos atributos y proporcione métodos para gestionar su validación y manipulación. Luego, usaremos una instancia de esta clase en la clase Ball para manejar los atributos de velocidad.
Beneficios:
-Abstracción Mejorada: La clase BallSpeedAttributes proporciona una abstracción más clara y comprensible para los atributos de velocidad y retardo.
-Validación Controlada: La encapsulación en la clase BallSpeedAttributes permite una validación coherente y controlada de los valores de velocidad y retardo.
-Facilita el Mantenimiento: Centralizar la lógica relacionada con los atributos de velocidad mejora la mantenibilidad al evitar la duplicación de código y simplificar futuras modificaciones.
-Legibilidad Mejorada: El uso de BallSpeedAttributes hace que el código de la clase Ball sea más legible y se centre en la lógica principal de la pelota.
-Posibilidad de Extensión: La refactorización proporciona una base sólida para futuras extensiones y funcionalidades relacionadas con la velocidad de la pelota.
-Reducción de Errores: La validación consistente en BallSpeedAttributes ayuda a prevenir errores al introducir valores incorrectos en los atributos de velocidad y retardo.