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