Является ли ActionListener примером шаблона делегирования? - PullRequest
5 голосов
/ 12 января 2012

В студенческие годы я никогда не понимал, какие шаблоны были в Java API.Сейчас на работе я столкнулся с паттерном «Делегирование» в Objective C n Cocoa на iOS, где один экран устанавливает себя в качестве делегата на следующем экране, чтобы этот экран мог передать какое-то сообщение этому делегату и предпринять некоторые действия, когда он возвращается к предыдущемуscreen.

Я понимаю, что я использую что-то подобное, когда я передаю «this» как ActionListener [путем реализации интерфейса] в JButton, и он автоматически вызывает actionPerformed, реализованный мной в этом классеи, таким образом, я могу изменить любые данные экземпляра в своем классе JFrame.

Так является ли ActionListener примером Delegate, если я прав?

РЕДАКТИРОВАТЬ: Как правильно указано ниже, это шаблон наблюдателя.Мы не устанавливаем ActionListener, мы добавляем один.Таким образом, может быть много слушателей этого действия.

1 Ответ

7 голосов
/ 12 января 2012

ActionListener является примером схемы наблюдений . Вы регистрируете наблюдателей (или слушателей) в компоненте, который вызывается при возникновении определенного события.

...