Tengo que tomar un dato y aplicarle una gran cantidad de posibles variables. Realmente no me gusta la idea de usar un conjunto gigantesco de sentencias if, entonces estoy buscando ayuda en un enfoque para simplificar y hacer que sea más fácil de mantener.Mejor enfoque para programar reglas empresariales/matemáticas altamente complejas
Como un ejemplo:
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 .. con posiblemente en el rango de 100-200 pruebas diferentes y variaciones de fórmula.
Esto parece una pesadilla de mantenimiento. ¿Alguna sugerencia?
EDIT:
Para añadir aún más al problema, muchas variables sólo se utilizan en ciertas situaciones, por lo que es algo más que un conjunto fijo de la lógica con diferentes valores. La lógica misma tiene que cambiar en función de las condiciones, posiblemente las condiciones aplicadas a partir de variables anteriores (por ejemplo, val> threshold).
Así que sí, estoy de acuerdo con el uso de búsquedas para muchos de los valores, pero también tengo que tener una lógica variable.
Posible engaño: http://stackoverflow.com/questions/1607252/how-to-simplify-complicated-business-if-logic –