ConstructiCat Logo
CodeBust.
Browse section ▾

Embutir Método.

Problem

Quando o corpo de um método é mais óbvio que o próprio método, use esta técnica.

Solution

Substitua as chamadas ao método pelo conteúdo do método e exclua o próprio método.

##Example

Before
class PizzaDelivery {
  // ...
  int getRating() {
    return moreThanFiveLateDeliveries() ? 2 : 1;
  }
  boolean moreThanFiveLateDeliveries() {
    return numberOfLateDeliveries > 5;
  }
}
After
class PizzaDelivery {
  // ...
  int getRating() {
    return numberOfLateDeliveries > 5 ? 2 : 1;
  }
}

##Why Refactor

Um método simplesmente delega para outro método. Em si, essa delegação não é problema. Mas, quando há muitos métodos assim, eles se tornam um emaranhado confuso e difícil de desvendar.

Muitas vezes os métodos não são tão curtos originalmente, mas acabam ficando assim à medida que alterações são feitas no programa. Portanto, não tenha receio de se livrar de métodos que já cumpriram seu papel.

##Benefits

  • Ao minimizar o número de métodos desnecessários, você torna o código mais direto.

##How to Refactor

  1. Certifique-se de que o método não é redefinido em subclasses. Se o método for redefinido, evite esta técnica.

  2. Encontre todas as chamadas ao método. Substitua essas chamadas pelo conteúdo do método.

  3. Exclua o método.