Qt => Java. Сигналы и слоты

Новичок в Java, поэтому интересует вопрос: как можно обмениваться информацией между объектами разных классов в Java аналогично сигналам и слотам из Qt? Предполагаю, как вариант можно наследоваться от одного кастомного класса который бы реализовывал подобный функционал, но как мне кажется это не слишком удачный вариант… Что можете подсказать?
  • Вопрос задан
  • 5082 просмотра
Решения вопроса 1
@mayorovp
То, что вам нужно, называется «паттерн „Наблюдатель“». Сигналы в Qt — это всего лишь одна из реализаций данного паттерна.

Стандартным для Java способом реализации является такой:
1. Создается интерфейс для наблюдателя (слота в терминологии Qt) с нужными методами
2. Для наблюдаемого класса создаются методы подписки (connect в Qt), отказа от подписки и вызова.

Соглашение об именовании:
Допустим, сигнал называется Foo
Тогда интерфейс будет называться FooListener, у него будет метод foo
Метод подписки будет называться addFooListener, метод отписки — removeFooListener, метод вызова — fireFooListeners (последний должен быть protected).

Да, получается больше кода, чем в Qt. Но таково идеология Java
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 03:54
1500 руб./за проект
22 нояб. 2024, в 02:56
10000 руб./за проект
22 нояб. 2024, в 00:55
500 руб./за проект