Одно из реальных применений State Pattern, которое я видел до сих пор, - это видеоплеер, способный воспроизводить онлайн-видео.
Вы должны управлять воспроизведением, паузой, буферизацией, соединением, поиском и даже другими состояниями.
Когда игрок находится в игровом или приостановленном состоянии, он реагирует на события взаимодействия с пользователем.
Когда проигрыватель находится в состоянии «подключения», он может не иметь достаточно данных, чтобы узнать продолжительность видео, поэтому панель поиска должна быть отключена.
Как только игрок подключен, он перейдет в состояние буферизации. В состоянии буферизации пользователь может искать или останавливать видео. Но если он пытается приостановить или воспроизвести видео, команда сохраняется на потом, поэтому, когда буферизация завершена, видео либо приостанавливается, либо начинает воспроизведение. и т.д.