Событие — это сообщение, посланное объектом, чтобы сообщить о совершении действия. Это действие может быть вызвано взаимодействием с пользователем, например при нажатии кнопки, или другой логикой программы, например изменением значения свойства. Объект, вызывающий событие, называется
отправителем событий. Отправителю событий не известен объект или метод, который будет получать (обрабатывать) созданные им события.
События являются членами класса и объявляются с помощью ключевого слова
event
. Чаще всего для этой цели используется следующая форма: event делегат_события имя_события;
где делегат_события обозначает имя делегата, используемого для поддержки события, а имя_события — конкретный объект объявляемого события.
Как и делегаты, события поддерживают групповую адресацию. Это дает возможность нескольким объектам реагировать на уведомление о событии.
Паттерн Наблюдатель тестно связан с событиями, т. к. его можно часто встретить там, где применяется событийная модель отношений между компонентами. Наблюдатель позволяет отдельным компонентам реагировать на события, происходящие в других компонентах.
Признаки применения паттерна: Наблюдатель можно определить по механизму подписки и методам оповещения, которые вызывают компоненты программы.
Применение данного паттерна описано
здесь.