Добрый день, прошу совета, как можно реализовать подобную штуку: Есть некое устройство, с которым общается программа, скажем по COM порту. На это устройство в разный момент времени, в зависимости от текущего состояния, должны быть отправлены разные команды, устройство их получает и должно ответить на них. Есть некоторые состояния, когда последовательно можно отправить сразу несколько команд. Так же, нужно предусмотреть повторную отправку команд для текущего состояния, если ответа не было или был не корректный. 1. Для каждого состояния есть свой метод, в котором отправляются команды (если для конкретного состояния ожидается сразу последовательно несколько команд, то в этом методе сразу же и отправляем последовательно эти команды). 2. Дальше если пришел ответ на команду/команды и он корректный, то переходим в следующее состояние, если ответа нет, то повторяем текущий шаг. Вот и вопрос в том как лучше реализовать повторный вызов метода для текущего состояния? Пока сделал таким образом: Если был таймаут ожидания (время ожидания ответа истекло) или некорректный ответ, то с помощью switch/case в зависимости от текущего состояния дергаем соответствующий ему метод. Но решение с этими switch/case кажется каким-то громоздким, кто как реализовывал подобные решения?