26 de outubro de 2017
 
O extract method é uma forma de refatoração aplicada para tratar casos nos quais um método possui acúmulo de tarefas muito distintas ou quando possuímos um método muito longo e de difícil entendimento. Neste caso, é interessante verificar a necessidade de refatoração do método.

Em alguns casos, pode ser melhor que o método seja dividido em dois ou mais métodos. Esses casos podem ocorrer, por exemplo, quando um método está realizando muitas tarefas e não deixa claro qual é a sua real finalidade.

Veja a seguir, no exemplo de Fowler, um método utilizado para realizar a impressão de um item e exibir alguns detalhes do mesmo:

Antes:

void printOwing() {
  printBanner();

  //print details
  System.out.println ("name:  " + _name);
  System.out.println ("amount " + getOutstanding());
}


Na refatoração, o método foi dividido para gerar dois métodos e tornar o código mais coerente. Imprimir e exibir detalhes são tarefas distintas e é interessante que onde elas coexistam, sejam criados métodos diferentes para cada uma delas.



Depois:

void printOwing() {
  printBanner();
  printDetails(getOutstanding());
}

void printDetails (double outstanding) {
  System.out.println ("name:  " + _name);
  System.out.println ("amount " + outstanding);
}  

Referência:

FOWLER, M. Refactoring: Improving the Design of Existing Code. 1. ed. Boston: Addison- Wesley Professional, 1999.

0 comentários:

Postar um comentário

Comentários:

Perfil

Formada em Sistemas de Informação e pós-graduada em Engenharia de Software.

Facebook

Views