Что такое слушатели (Listeners) в Java?

«Что такое слушатели (Listeners) в Java?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Listeners (Слушатели) — это объекты, реализующие паттерн «Наблюдатель» (Observer) для обработки событий. Они «подписываются» на источник событий и вызываются при их наступлении.

Основные применения:

  • GUI (Swing/JavaFX): Обработка действий пользователя (ActionListener, MouseListener).
  • Веб-приложения (Servlet API): Отслеживание жизненного цикла контекста и сессий (ServletContextListener, HttpSessionListener).
  • Spring Framework: Реакция на события контекста приложения (ApplicationListener<ContextRefreshedEvent>).

Пример ActionListener в Swing:

button.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("Кнопка нажата!");
    }
});

Ключевые преимущества:

  1. Разделение ответственности: Код, генерирующий событие, не зависит от кода его обработки.
  2. Гибкость: Несколько слушателей могут реагировать на одно событие; их можно динамически добавлять и удалять.
  3. Стандартизация: Единый подход к обработке событий в разных областях (UI, web, framework).