В чем разница между Action и Event в GWT-платформе?
GWT-платформа отличается от Action и Event
Ответы (3)
Я думаю, что понятие события немного шире, чем действие. Каждое действие может быть связано с некоторым событием, но действие не обязательно связано с возникновением определенного события. действие — это любое действие пользователя. А событие — это результат действия пользователя (событие пользовательского интерфейса) или выполнения некоторых условий (другое событие). Например, пользователь выполнил действие press button
. Это действие может быть связано с событием button was pressed
. Например, событие expiration of user session
не требует никаких действий.
Но эти термины очень похожи по значению для GWT, и я полагаю, что иногда многие разработчики используют их взаимозаменяемо.
Действия — это объекты, представляющие клиент-серверную команду. Действия отправляются с клиента на сервер с помощью диспетчера GWTP (DispatchAsync). Действия будут обрабатываться на стороне сервера с использованием обработчика действий. Действия могут иметь асинхронные обратные вызовы для обработки на стороне клиента успешной или неудачной обработки действий.
События — это объекты, используемые на стороне клиента. Они запускаются (в идеале из Presenter или PresenterWidget) и транслируются другим Presenter/PresenterWidget через EventBus. Другие виджеты Presenter/PresenterWidget могут подписываться на определенный тип события и предпринимать действия всякий раз, когда событие этого типа запускается через EventBus. Это реализация шаблона Observer.
В платформе GWT действия относятся к вызовам на стороне сервера (для получения/изменения данных между клиентом и сервером). События только на стороне клиента. Их можно использовать для ручного выявления докладчиков или для обновления какого-либо текста.
По крайней мере, так я их использую.