Colapsar jerarquía.
Tienes una jerarquía de clases en la que una subclase es prácticamente igual que su superclase.
Fusiona la subclase y la superclase.
##Example
##Why Refactor
Tu programa ha crecido con el tiempo y una subclase y una superclase han llegado a ser prácticamente iguales. Se eliminó una funcionalidad de una subclase, se movió un método a la superclase... y ahora tienes dos clases casi idénticas.
##Benefits
-
Se reduce la complejidad del programa. Menos clases significan menos cosas que mantener presentes en la cabeza y menos piezas móviles susceptibles de romperse de las que preocuparse durante futuros cambios de código.
-
Navegar por tu código es más fácil cuando los métodos se definen pronto en una sola clase. No necesitas rastrear toda la jerarquía para encontrar un método concreto.
##How to Refactor
-
Selecciona qué clase es más fácil de eliminar: la superclase o su subclase.
-
Usa Subir campo y Subir método si decides deshacerte de la subclase. Si optas por eliminar la superclase, recurre a Bajar campo y Bajar método.
-
Sustituye todos los usos de la clase que vas a eliminar por la clase a la que se van a migrar los campos y métodos. A menudo se tratará de código para crear clases, tipado de variables y parámetros, y documentación en los comentarios del código.
-
Elimina la clase vacía.