Мне нужно взять кусок данных и применить к нему большое количество возможных переменных. Мне действительно не нравится идея использования гигантского набора операторов if, поэтому я ищу помощь в подходе, упрощающем и облегчающем поддержание.
Как пример:
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;
...
}
и т. Д. И т. Д. И т. Д., Возможно, в диапазоне от 100 до 200 различных тестов и вариантов формул.
Это просто похоже на кошмар обслуживания. Есть предложения?
EDIT:
Чтобы еще больше добавить к проблеме, многие переменные используются только в определенных ситуациях, так что это больше, чем просто фиксированный набор логики с разными значениями. Сама логика должна меняться в зависимости от условий, возможно, условий, применяемых из предыдущих переменных (например, если val> threshold).
Так что да, я согласен с использованием поиска для многих значений, но у меня также должна быть переменная логика.