Задачи для начинающих
то ты сейчас думаешь о кнопке с логикой, а сам светофор - одни лампочки
В данный момент были именно размышления о кнопке с логикой.
Светофор и его логика как бы отдельная вещь и именно эти две вещи хочется иметь раздельными.
А лампочки были отделены еще на самой первой стадии При этом получился объект с тремя фиксированными состояниями.
Еще есть логика переключения состояний.
А к этому есть кнопка которая должна как то изменить логику переключений. При этом необходимо знать актуальное состояние и возможно предыдущие.
На мой взгляд тут один класс
Один класс не может быть даже при обычном светофоре. Так как у нас есть по крайней мере, две задачи: включение/выключение лампочек и логика их смены.
Любая система должна делится на простейшие части.
У нас вот сейчас 5 лампочек, которые должны реагировать на 3 сигнала определенным образом. Если оставить их как есть то возрастет вероятность ошибки так как эта логика должна быть где-то в другом месте.
то это должно быть сделано в других классах
именно так, один класс никак не катит. Дело тут никак не в одержимости.
Хотя можно сделать и больше классов чем действительно нужно, на все возможные случаи жизни. В данном случае будет просто неоправданное усложнение реализации.