Substituir Algoritmo.
Então você quer substituir um algoritmo existente por um novo?
Substitua o corpo do método que implementa o algoritmo por um novo algoritmo.
##Example
String foundPerson(String[] people){
for (int i = 0; i < people.length; i++) {
if (people[i].equals("Don")){
return "Don";
}
if (people[i].equals("John")){
return "John";
}
if (people[i].equals("Kent")){
return "Kent";
}
}
return "";
}String foundPerson(String[] people){
List candidates =
Arrays.asList(new String[] {"Don", "John", "Kent"});
for (int i=0; i < people.length; i++) {
if (candidates.contains(people[i])) {
return people[i];
}
}
return "";
}##Why Refactor
-
A refatoração gradual não é o único método para melhorar um programa. Às vezes um método está tão cheio de problemas que é mais fácil demoli-lo e começar do zero. E talvez você tenha encontrado um algoritmo que seja muito mais simples e eficiente. Se for esse o caso, basta substituir o algoritmo antigo pelo novo.
-
Com o passar do tempo, seu algoritmo pode ser incorporado a uma biblioteca ou framework bem conhecido e você quer se livrar da sua implementação independente, a fim de simplificar a manutenção.
-
Os requisitos do seu programa podem mudar de forma tão drástica que o seu algoritmo existente não pode ser aproveitado para a tarefa.
##How to Refactor
-
Certifique-se de ter simplificado o algoritmo existente o máximo possível. Mova o código não essencial para outros métodos usando Extrair Método. Quanto menos partes móveis houver no seu algoritmo, mais fácil será substituí-lo.
-
Crie seu novo algoritmo em um novo método. Substitua o algoritmo antigo pelo novo e comece a testar o programa.
-
Se os resultados não corresponderem, volte à implementação antiga e compare os resultados. Identifique as causas da discrepância. Embora a causa muitas vezes seja um erro no algoritmo antigo, é mais provável que se deva a algo que não está funcionando no novo.
-
Quando todos os testes forem concluídos com sucesso, exclua o algoritmo antigo de vez!