плохое решение
всё зависит от того, как устроены условия и выполняемые действия.
Без этой конкретики ответа быть не может, кроме очевидного switch
Не зная деталей это может быть плохим решением.
P.S. код, кстати, нерабочий
ну это тоже явно, у вас много ответственности, надо пересмотреть архитектуру
Ваш код не соответствует этому описанию.
для вашего куска псевдокода это как раз решение, либо разносите логику, делите и сокращайте, логика сильно большая в одном месте