ConstructiCat Logo
CodeBust.
Browse section ▾

Recolher Hierarquia.

Problem

Você tem uma hierarquia de classes na qual uma subclasse é praticamente igual à sua superclasse.

Solution

Mescle a subclasse e a superclasse.

##Example

Antes
Employee Salesman
Depois
Employee

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

  1. Selecione qual classe é mais fácil de remover: a superclasse ou a sua subclasse.

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

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

  4. Exclua a classe vazia.