Subir Método.
Tus subclases tienen métodos que realizan un trabajo similar.
Haz que los métodos sean idénticos y luego muévelos a la superclase correspondiente.
##Example
##Why Refactor
Las subclases crecieron y se desarrollaron independientemente unas de otras, lo que provocó campos y métodos idénticos (o casi idénticos).
##Benefits
-
Elimina el código duplicado. Si necesitas hacer cambios en un método, es mejor hacerlo en un único lugar que tener que buscar todos los duplicados del método en las subclases.
-
Esta técnica de refactorización también puede usarse si, por alguna razón, una subclase redefine un método de la superclase pero realiza lo que es esencialmente el mismo trabajo.
##How to Refactor
-
Investiga métodos similares en las superclases. Si no son idénticos, dales el mismo formato para que coincidan entre sí.
-
Si los métodos usan un conjunto de parámetros diferente, coloca los parámetros en la forma que quieras ver en la superclase.
-
Copia el método a la superclase. Aquí puede que descubras que el código del método usa campos y métodos que existen solo en las subclases y que, por tanto, no están disponibles en la superclase. Para resolver esto, puedes:
-
Para los campos: usa Subir Campo o Auto-Encapsular Campo para crear getters y setters en las subclases; luego declara estos getters de forma abstracta en la superclase.
-
Para los métodos: usa Subir Método o declara métodos abstractos para ellos en la superclase (ten en cuenta que tu clase se volverá abstracta si no lo era previamente).
-
-
Elimina los métodos de las subclases.
-
Comprueba los lugares en los que se llama al método. En algunos lugares quizá puedas reemplazar el uso de una subclase por la superclase.