Jump to content

Программирование, управляемое событиями

В компьютерном программировании событийно -ориентированное программирование — это парадигма программирования , в которой ход выполнения программы определяется внешними событиями . Типичным событием могут быть события пользовательского интерфейса от мышей , клавиатур , сенсорных панелей и сенсорных экранов или входные данные от внешних датчиков , а также быть сгенерированы программно ( передача сообщений ) из других программ или потоков или сетевых событий.

Программирование, управляемое событиями, является доминирующей парадигмой, используемой в приложениях с графическими пользовательскими интерфейсами и сетевых серверах.

В приложении, управляемом событиями, обычно существует цикл событий , который прослушивает события, а затем запускает функцию обратного вызова при обнаружении одного из этих событий.

Программы, управляемые событиями, можно писать на любом языке программирования , хотя эта задача проще в языках, которые предоставляют абстракции высокого уровня .

Хотя они не совсем соответствуют модели, управляемой событиями, обработка прерываний и обработка исключений имеют много общего.

Важно различать парадигмы, управляемые событиями и сообщениями (также называемые управляемыми очередями) : сервисы, управляемые событиями (например, AWS SNS ), отделены от своих потребителей. В то время как сервисы, управляемые очередями/сообщениями (например, AWS SQS ), связаны со своими потребителями. [1]

Цикл событий [ править ]

Поскольку цикл получения/отправки событий является общим для приложений, многие среды программирования заботятся об их реализации и ожидают, что пользователь предоставит только код для обработчиков событий.

RPG , ранний язык программирования от IBM , чья концепция дизайна 1960-х годов была похожа на программирование, управляемое событиями, обсуждавшееся выше, обеспечивал встроенный основной цикл ввода-вывода (известный как «программный цикл»), в котором вычисления выполнялись в соответствии с индикаторы ( флаги ), которые были установлены ранее в цикле.

Обработчики событий [ править ]

Фактическая логика содержится в процедурах обработчика событий. Эти процедуры обрабатывают события, на которые будет реагировать основная программа. Например, один щелчок левой кнопкой мыши по командной кнопке в программе с графическим интерфейсом может запустить процедуру, которая откроет другое окно, сохранит данные в базе данных или выйдет из приложения. Многие IDE предоставляют программисту шаблоны событий графического интерфейса, позволяя программисту сосредоточиться на написании кода события.

Хотя отслеживание истории обычно тривиально в последовательной программе. Поскольку обработчики событий выполняются в ответ на внешние события, правильное структурирование обработчиков для работы при вызове в любом порядке может потребовать особого внимания и планирования в программе, управляемой событиями.

Помимо написания обработчиков событий, обработчики событий также необходимо привязать к событиям, чтобы при возникновении события вызывалась правильная функция. Для событий пользовательского интерфейса многие IDE объединяют два шага: двойной щелчок по кнопке, и редактор создает (пустой) обработчик событий, связанный с нажатием кнопки пользователем, и открывает текстовое окно, чтобы вы могли редактировать обработчик событий.

Общее использование [ править ]

Большинство существующих архитектур графического пользовательского интерфейса используют программирование, управляемое событиями. [2] В Windows есть цикл событий . Платформа Java AWT обрабатывает все изменения пользовательского интерфейса в одном потоке, называемом потоком диспетчеризации событий . Аналогично, все обновления пользовательского интерфейса в платформе Java JavaFX происходят в потоке приложения JavaFX. [3]

Большинство сетевых серверов и платформ, таких как Node.js, также управляются событиями. [4]

Обработка прерываний и исключений [ править ]

См. также [ править ]

Ссылки [ править ]

  1. ^ Чандрасекаран, Премананд; Кришнан, Картик; Форд, Нил; Байарс, Брэндон; Буйзе, Аллард (2022). Доменно-ориентированное проектирование с использованием Java — Руководство для практикующего . Пакт Паблишинг. ISBN  9781800564763 .
  2. ^ Самек, Миро (1 апреля 2013 г.). «Кто переместил мое государство?» . Доктор Добб . Проверено 28 января 2018 г.
  3. ^ Федорцова, Ирина (июнь 2012 г.). «Параллелизм в JavaFX» . Домашняя страница документации JavaFX . Оракул . Проверено 4 января 2018 г. Граф сцены JavaFX, который представляет графический пользовательский интерфейс приложения JavaFX, не является потокобезопасным, и к нему можно получить доступ и изменить его только из потока пользовательского интерфейса, также известного как поток приложения JavaFX.
  4. ^ Программирование, управляемое событиями, в Node.js.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 1e9cc7e3da6bcfc21883f93870fa8755__1718130180
URL1:https://arc.ask3.ru/arc/aa/1e/55/1e9cc7e3da6bcfc21883f93870fa8755.html
Заголовок, (Title) документа по адресу, URL1:
Event-driven programming - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)