Recolher Hierarquia.
Você tem uma hierarquia de classes na qual uma subclasse é praticamente igual à sua superclasse.
Mescle a subclasse e a superclasse.
##Example
##Why Refactor
Seu programa cresceu ao longo do tempo e uma subclasse e uma superclasse se tornaram praticamente iguais. Uma funcionalidade foi removida de uma subclasse, um método foi movido para a superclasse... e agora você tem duas classes parecidas.
##Benefits
-
A complexidade do programa é reduzida. Menos classes significam menos coisas para manter organizadas na sua cabeça e menos partes móveis quebráveis com que se preocupar durante futuras mudanças no código.
-
Navegar pelo seu código fica mais fácil quando os métodos são definidos em uma única classe. Você não precisa vasculhar toda a hierarquia para encontrar um método específico.
##How to Refactor
-
Selecione qual classe é mais fácil de remover: a superclasse ou a sua subclasse.
-
Use Subir Campo e Subir Método se você decidir se livrar da subclasse. Se optar por eliminar a superclasse, recorra a Descer Campo e Descer Método.
-
Substitua todos os usos da classe que você está excluindo pela classe para a qual os campos e métodos serão migrados. Muitas vezes isso será código de criação de classes, tipagem de variáveis e parâmetros, e documentação em comentários de código.
-
Exclua a classe vazia.