В чем разница между действием и событием? - PullRequest
3 голосов
/ 31 марта 2010

Когда пользователь отправляет сообщение, это действие или событие?

1 Ответ

3 голосов
/ 31 марта 2010

Пользователь предоставляет только действия (нажатие кнопок, выбор в диалоговых окнах и т. Д.)

Эти действия [иногда] преобразуются в события базовой структурой. Концептуально события могут пониматься как [уведомления] «сообщения», отправляемые методам, которые неявно или явно «зарегистрированы» в базовой структуре, подлежащей уведомлению [для конкретного типа события]. В действительности фреймворк просто вызывает эти методы с соответствующими аргументами, и такой вызов фактически является событием.

Слово событие также используется для обозначения определенного типа событий. Например, говорят о событии «Изменить» или «Отправить» данного поля редактирования или другого элемента пользовательского интерфейса. В этом смысле событие является не частным случаем возможности вызова базового метода, а скорее общим набором условий, которые требуют вызова метода.

Таким образом, пользователь на самом деле " не отправляет сообщение ", как указано в вопросе, он / она предпринимает некоторые действия над различными элементами пользовательского интерфейса, и эти действия [могут] привести к тому, что Framework обнаруживает определенный тип события (или несколько). Затем платформа просматривает, какие методы в настоящее время зарегистрированы, чтобы получать соответствующие уведомления, и затем среда вызывает эти методы, передавая надлежащие аргументы (которые составляют своего рода «сообщение» для использования методом).

Основная идея этой модели заключается в том, чтобы на уровне приложения была предусмотрена специальная логика для обработки событий, а не беспокоиться о том, чтобы следить за каждым движением системы и пользователя. Платформа делает это, и ей можно доверять, чтобы уведомить соответствующие обработчики событий о том, что конкретное действие пользователя (или состояние системы, такое как таймер достигает своего установленного времени, сетевой пакет принимается и т. Д. И т. Д.), Гарантирует такое уведомление.

...