Regrouper une expression conditionnelle.
Vous avez plusieurs conditions qui mènent au même résultat ou à la même action.
Regroupez toutes ces conditions en une seule expression.
##Example
double disabilityAmount() {
if (seniority < 2) {
return 0;
}
if (monthsDisabled > 12) {
return 0;
}
if (isPartTime) {
return 0;
}
// Calculer le montant de l'indemnité d'invalidité.
// ...
}double disabilityAmount() {
if (isNotEligibleForDisability()) {
return 0;
}
// Calculer le montant de l'indemnité d'invalidité.
// ...
}##Why Refactor
Votre code contient de nombreux opérateurs alternés qui effectuent des actions identiques. La raison pour laquelle les opérateurs sont séparés n'est pas claire.
L'objectif principal du regroupement est d'extraire la condition dans une méthode distincte pour plus de clarté.
##Benefits
-
Élimine le code dupliqué du flot de contrôle. Combiner plusieurs conditions qui ont la même « destination » permet de montrer que vous n'effectuez qu'une seule vérification compliquée menant à une seule action.
-
En regroupant tous les opérateurs, vous pouvez désormais isoler cette expression complexe dans une nouvelle méthode dont le nom explique l'objectif de la condition.
##How to Refactor
Avant de refactoriser, assurez-vous que les conditions n'ont pas d'« effets de bord » et ne modifient rien d'autre, mais se contentent de renvoyer des valeurs. Les effets de bord peuvent se cacher dans le code exécuté à l'intérieur de l'opérateur lui-même, par exemple lorsque quelque chose est ajouté à une variable en fonction du résultat d'une condition.
-
Regroupez les conditions en une seule expression à l'aide de
andetor. En règle générale, lors du regroupement :-
Les conditions imbriquées sont jointes avec
and. -
Les conditions consécutives sont jointes avec
or.
-
-
Appliquez Extraire une méthode aux conditions des opérateurs et donnez à la méthode un nom qui reflète l'objectif de l'expression.