Sustituir algoritmo.
¿Quieres reemplazar un algoritmo existente por uno nuevo?
Reemplaza el cuerpo del método que implementa el algoritmo por un algoritmo nuevo.
##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
-
La refactorización gradual no es el único método para mejorar un programa. A veces un método está tan plagado de problemas que es más fácil derribarlo y empezar de cero. Y quizá hayas encontrado un algoritmo mucho más simple y eficiente. Si es así, simplemente debes reemplazar el algoritmo antiguo por el nuevo.
-
Con el tiempo, tu algoritmo puede incorporarse a una biblioteca o framework muy conocidos y quieres deshacerte de tu implementación independiente para simplificar el mantenimiento.
-
Los requisitos de tu programa pueden cambiar tanto que tu algoritmo existente no pueda aprovecharse para la tarea.
##How to Refactor
-
Asegúrate de haber simplificado el algoritmo existente todo lo posible. Mueve el código poco importante a otros métodos usando Extraer método. Cuantas menos piezas móviles tenga tu algoritmo, más fácil será reemplazarlo.
-
Crea tu nuevo algoritmo en un método nuevo. Reemplaza el algoritmo antiguo por el nuevo y empieza a probar el programa.
-
Si los resultados no coinciden, vuelve a la implementación antigua y compara los resultados. Identifica las causas de la discrepancia. Aunque la causa suele ser un error en el algoritmo antiguo, es más probable que se deba a algo que no funciona en el nuevo.
-
Cuando todas las pruebas se completen con éxito, ¡elimina el algoritmo antiguo para siempre!