ConstructiCat Logo
CodeBust.
Browse section ▾

Colapsar jerarquía.

Problem

Tienes una jerarquía de clases en la que una subclase es prácticamente igual que su superclase.

Solution

Fusiona la subclase y la superclase.

##Example

Before
Employee Salesman
After
Employee

##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

  1. Selecciona qué clase es más fácil de eliminar: la superclase o su subclase.

  2. 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.

  3. 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.

  4. Elimina la clase vacía.