Subir Método.
Suas subclasses têm métodos que realizam um trabalho semelhante.
Torne os métodos idênticos e, em seguida, mova-os para a superclasse relevante.
##Example
##Why Refactor
As subclasses cresceram e se desenvolveram independentemente umas das outras, causando campos e métodos idênticos (ou quase idênticos).
##Benefits
-
Elimina código duplicado. Se você precisa fazer alterações em um método, é melhor fazê-las em um único lugar do que ter que procurar por todas as duplicatas do método nas subclasses.
-
Essa técnica de refatoração também pode ser usada se, por algum motivo, uma subclasse redefine um método da superclasse mas realiza, essencialmente, o mesmo trabalho.
##How to Refactor
-
Investigue métodos semelhantes nas superclasses. Se não forem idênticos, formate-os para que correspondam uns aos outros.
-
Se os métodos usam um conjunto diferente de parâmetros, coloque os parâmetros na forma que você quer ver na superclasse.
-
Copie o método para a superclasse. Aqui você pode descobrir que o código do método usa campos e métodos que existem apenas nas subclasses e que, portanto, não estão disponíveis na superclasse. Para resolver isso, você pode:
-
Para campos: use Subir Campo ou Auto-Encapsular Campo para criar getters e setters nas subclasses; depois declare esses getters de forma abstrata na superclasse.
-
Para métodos: use Subir Método ou declare métodos abstratos para eles na superclasse (observe que sua classe se tornará abstrata se ainda não for).
-
-
Remova os métodos das subclasses.
-
Verifique os locais em que o método é chamado. Em alguns lugares você pode conseguir substituir o uso de uma subclasse pela superclasse.