Доброго времени суток!
Имеется примерно такой псевдокод для неких расчетов:
IF Условие 1 THEN
Делаем расчеты первым методом
ELSE IF Условие 2 THEN
Делаем расчеты вторым методом
ELSE IF Условие 3 THEN
Делаем расчеты третьим методом
ELSE
Здесь обращаемся к базе данных и находим последнее валидное значение
END
Суть в том, что необходимо сделать расчеты. Выберем для этого первый метод, если не получилось первым, то нужно попробовать вторым, иначе попробовать третьим, но в случае, если все методы не принесли успешных результатов, то необходимо обратиться к Базе Данных и там найти последнее успешное значение.
Таких вот if/else по коду может около 20, причем тут идет смешение разной логики: бизнес-логики и логики обращения к БД.
Знаете ли вы как можно "красиво" организовать подобный код? Может какие-нибудь паттерны проектирования можно применить?