Как улучшить читаемость кода (много операторов if)?
Тут не паттерны, а рефакторинг нужен. Например "выделение метода".
Не сочти те за пиар, но почитай мою статью на хабре, Как раз я описал о применимости ДИ в разработке бота.
https://habrahabr.ru/post/335490/