ConstructiCat Logo
CodeBust.
Browse section ▾

Simplifying Conditional Expressions.

Antipatterns Mascot
Regrouper une expression conditionnelle

Problème : vous avez plusieurs conditions qui mènent au même résultat ou à la même action. Solution : regroupez toutes ces conditions en une seule expression.

001
Antipatterns Mascot
Regrouper les fragments conditionnels dupliqués

Problème : un code identique se retrouve dans toutes les branches d’une condition. Solution : déplacez le code en dehors de la condition.

002
Code Smells Mascot
Décomposer une condition

Problème : Vous avez une condition complexe (if-then/else ou switch). Solution : Décomposez les parties compliquées de la condition en méthodes distinctes : la condition, le then et le else.

003
Design Patterns Mascot
Introduire une assertion

Problème : pour qu'une portion de code fonctionne correctement, certaines conditions ou valeurs doivent être vraies. Solution : remplacez ces hypothèses par des vérifications d'assertion explicites.

004
Antipatterns Mascot
Introduire un objet Null

Problème : comme certaines méthodes renvoient null au lieu d’objets réels, votre code comporte de nombreuses vérifications de null. Solution : au lieu de null, renvoyez un objet Null qui présente le comportement par défaut.

005
Architectural Patterns Mascot
Supprimer le drapeau de contrôle

Problème : vous avez une variable booléenne qui sert de drapeau de contrôle pour plusieurs expressions booléennes. Solution : au lieu de la variable, utilisez break, continue et return.

006
Design Patterns Mascot
Remplacer le conditionnel par du polymorphisme

Problème : vous avez une instruction conditionnelle qui exécute diverses actions selon le type ou les propriétés d’un objet. Solution : créez des sous-classes correspondant aux branches de la conditionnelle. Dans chacune, créez une méthode commune et déplacez-y le code de la branche correspondante de la conditionnelle. Remplacez ensuite la conditionnelle par l’appel de la méthode appropriée. Le résultat est que la bonne implémentation sera obtenue par polymorphisme en fonction de la classe de l’objet.

007
Design Patterns Mascot
Remplacer les conditions imbriquées par des clauses de garde

Problème : Vous avez un groupe de conditions imbriquées et il est difficile de déterminer le flux normal d'exécution du code. Solution : Isolez toutes les vérifications spéciales et les cas limites dans des clauses distinctes et placez-les avant les vérifications principales. Idéalement, vous devriez obtenir une liste « plate » de conditions, les unes après les autres.

008