Remplacer l’algorithme.
Vous souhaitez remplacer un algorithme existant par un nouveau ?
Remplacez le corps de la méthode qui implémente l’algorithme par un nouvel algorithme.
##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
-
Le refactoring progressif n’est pas la seule méthode pour améliorer un programme. Parfois, une méthode est tellement encombrée de problèmes qu’il est plus simple de la démolir et de repartir de zéro. Et peut-être avez-vous trouvé un algorithme bien plus simple et plus efficace. Si tel est le cas, vous devriez tout simplement remplacer l’ancien algorithme par le nouveau.
-
Au fil du temps, votre algorithme peut être intégré à une bibliothèque ou à un framework reconnu, et vous souhaitez vous débarrasser de votre implémentation indépendante afin de simplifier la maintenance.
-
Les exigences de votre programme peuvent évoluer si profondément que votre algorithme existant ne peut plus être réutilisé pour la tâche.
##How to Refactor
-
Assurez-vous d’avoir simplifié autant que possible l’algorithme existant. Déplacez le code secondaire vers d’autres méthodes à l’aide d’Extraire une méthode. Moins votre algorithme comporte de parties mobiles, plus il est facile à remplacer.
-
Créez votre nouvel algorithme dans une nouvelle méthode. Remplacez l’ancien algorithme par le nouveau et commencez à tester le programme.
-
Si les résultats ne concordent pas, revenez à l’ancienne implémentation et comparez les résultats. Identifiez les causes de l’écart. Bien que la cause soit souvent une erreur dans l’ancien algorithme, il est plus probable qu’il s’agisse d’un dysfonctionnement dans le nouveau.
-
Lorsque tous les tests sont réussis, supprimez définitivement l’ancien algorithme !