Ответ
Да, использовал. Слушатели (Listeners) в Java реализуют паттерн Наблюдатель (Observer) и используются для обработки событий в event-driven архитектурах. Они позволяют объектам (источникам событий) уведомлять другие объекты (слушателей) об изменениях своего состояния.
Основные области применения:
-
GUI (Swing, JavaFX, Android): Обработка действий пользователя.
// Swing: ActionListener для кнопки JButton button = new JButton("Click"); button.addActionListener(e -> System.out.println("Кнопка нажата!")); -
Веб-приложения (Servlet API): Отслеживание событий жизненного цикла.
// HttpSessionListener для отслеживания сессий @WebListener public class SessionLogger implements HttpSessionListener { public void sessionCreated(HttpSessionEvent se) { System.out.println("Сессия создана: " + se.getSession().getId()); } } -
Фреймворки (Spring): Механизм Application Events.
// Spring: Обработка кастомного события @EventListener public void handleUserRegisteredEvent(UserRegisteredEvent event) { // Отправить приветственное письмо emailService.sendWelcomeEmail(event.getUser()); }
Преимущества использования Listeners:
- Низкая связанность: Источник события не знает деталей реализации слушателей.
- Расширяемость: Можно легко добавить новых слушателей, не изменяя код источника.
- Асинхронность: Позволяет строить реактивные системы.
Слушатели — фундаментальный механизм для создания гибких и отзывчивых приложений.