Paramétrer la méthode.
Plusieurs méthodes effectuent des actions similaires qui ne diffèrent que par leurs valeurs, nombres ou opérations internes.
Combinez ces méthodes en utilisant un paramètre qui transmettra la valeur particulière nécessaire.
##Exemple
void tenPercentRaise() {
salary *= 1.1;
}
void fivePercentRaise() {
salary *= 1.05;
}void raise(double factor) {
salary *= 1 + factor;
}##Pourquoi refactoriser
Si vous avez des méthodes similaires, vous avez probablement du code dupliqué, avec toutes les conséquences que cela implique.
De plus, si vous devez ajouter encore une autre version de cette fonctionnalité, vous devrez créer encore une autre méthode. Au lieu de cela, vous pourriez simplement exécuter la méthode existante avec un paramètre différent.
##Comment refactoriser
-
Créez une nouvelle méthode dotée d’un paramètre et déplacez-y le code identique pour toutes les méthodes, en appliquant Extraire une méthode. Notez que, parfois, seule une certaine partie des méthodes est réellement identique. Dans ce cas, le refactoring consiste à n’extraire que cette partie commune dans une nouvelle méthode.
-
Dans le code de la nouvelle méthode, remplacez la valeur particulière/différente par un paramètre.
-
Pour chaque ancienne méthode, trouvez les endroits où elle est appelée et remplacez ces appels par des appels à la nouvelle méthode en y incluant un paramètre. Supprimez ensuite l’ancienne méthode.