Je dois prendre un élément de données et lui appliquer un grand nombre de variables possibles. Je n'aime vraiment pas l'idée d'utiliser un ensemble gigantesque d'instructions if, donc je cherche de l'aide dans une approche pour simplifier, et le rendre plus facile à maintenir.Meilleure approche pour programmer des règles métier/mathématiques très complexes
À titre d'exemple:
if (isSoccer)
val = soccerBaseVal;
else if (isFootball)
val = footballBaseVal;
.... // 20 different sports
if (isMale)
val += 1;
else
val += 5;
switch(dayOfWeek)
{
case DayOfWeek.Monday:
val += 12;
...
}
etc .. etc .. etc .. avec éventuellement dans la gamme de 100-200 tests différents et des variations de la formule.
Cela ressemble juste à un cauchemar de maintenance. Aucune suggestion?
EDIT:
Pour ajouter encore au problème, de nombreuses variables ne sont utilisées que dans certaines situations, il est donc plus qu'un simple ensemble fixe de la logique avec des valeurs différentes. La logique elle-même doit changer en fonction des conditions, éventuellement des conditions appliquées à partir de variables précédentes (si val> seuil, par exemple). Donc, oui, je suis d'accord pour utiliser des recherches pour beaucoup de valeurs, mais je dois aussi avoir une logique variable.
Possible dupe: http://stackoverflow.com/questions/1607252/how-to-simplify-complicated-business-if-logic –