Skip to content

Tarea4 CodeSmell #7

Description

@melpgala

Asunto: Tarea4 - Code Smell Nota: Es parte de un deber, siéntete libre de ignorar.
CodeSmell #5: Feature Envy

Justificación de Problema: La clase jugador tiene los métodos de determinarDirección, evaluarVelocidadX, evaluarVelocidadY solo usa métodos de la clase GestorControles y no métodos propios en estos. Por lo que los métodos en cuestión están “envidiando” ciertas funcionalidades de otro objeto. Además, tener estos métodos dentro de la clase jugador hace que el código en esta sea más extenso. Esto nos sugiere que los métodos deberían ser parte de la clase GestorControles.

Solución: Mover dichos métodos a GestorControles en donde tenga mas sentido su uso sin que Jugador tenga que “envidiar” la funcionalidad de otra clase. También se agrega una llamada al método determinarDirección dentro de la clase jugador para poderlo usar.
Nota: Esto es un ejemplo de como organizarlo.

image

image

Beneficios de Refactorizar: Se mejora la cohesión de ambas clases al tener una responsabilidad especifica y solo hacer uso de llamadas a métodos. Hace más sencillo modificar una clase sin afectar a otra. Mejora la legibilidad del código y disminuye la cantidad de líneas de código dentro de las clases lo que hace más sencillo la corrección de errores.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions