Когда использовать события?

Object obj;

Method method = obj.getClass().getMethod("methodName", null);

method.invoke(obj, null);
8
задан Daniel Daranas 21 July 2009 в 08:31
поделиться

3 ответа

Обычно события используются для уведомления подписчиков о некоторых действиях или изменении состояния, которые произошли с объектом. Используя событие, вы позволяете различным подписчикам реагировать по-разному, а путем отделения подписчика (и его логики) от генератора событий объект становится повторно используемым.

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

11
ответ дан 5 December 2019 в 08:25
поделиться

Разница между вызовом подпрограммы и возбуждением событий связана с: спецификацией, выбором, количеством элементов и, в конечном итоге, с какой стороны, инициатор или получатель имеет управление.

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

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

5
ответ дан 5 December 2019 в 08:25
поделиться

Это компромисс между простотой и возможностью повторного использования. Давайте возьмем метафору процесса «Отправка электронного письма»:

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

Однако, в случае списка рассылки, вы не знаете заранее, сколько пользователей собираются подписаться на вашу электронную почту. В этом случае вы создаете программу списка рассылки, на которую пользователи могут подписаться, и электронная почта автоматически отправляется всем подписанным пользователям. Это моделирование событий.

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

Cheers,

Ajit.

4
ответ дан 5 December 2019 в 08:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: