Я немного смущен тем, как использовать прослушиватели событий между моделью и контроллером. Я работаю над приложением, которое на стороне клиента я разделяю на две части: сам клиент, который выполняет всю связь с сервером и графическим интерфейсом. Клиент запускает события об обновлениях с сервера и передает события о действиях пользователей, которые интересует сервер (это приложение в основном многопользовательский графический редактор). Так что мои вопросы:MVC и прослушиватели событий в Java
Я нашел, что это проще для GUI, чтобы сохранить ссылку на клиент и наоборот, вместо стрельбы событий и с помощью прослушивателя событий. Это вообще плохая практика?
Теперь, если мы фактически используем события, я запутался в реализации. Итак, я создал несколько типов событий, которые я буду новым (drawEvent, connectionEvent и т. Д.). Затем я реализовал ClientListener и GUIListener с определенным поведением. Теперь, как мне запустить события? Из чтения я понял, что для того, чтобы графический интерфейс мог что-то запускать, нужно вызвать clientListener.eventHappened (event), правильно? Таким образом, он должен иметь этого слушателя, то есть клиент и графический интерфейс должны делиться слушателями (кажется, более сложными, чем просто ссылки)? И, наконец, как я могу добавить экземпляр GUIListener в gui? Опять же, из того, что я читал, мне нужно создать атрибут EventListenerList и просто добавить в него новый экземпляр GUI-приемника? Это оно? Я не понимаю, как это вызовет реальное прослушивание.
Извините, я просто изучаю все это и не имею полного понимания. Спасибо!
спасибо, я разработал события и слушатель, понял, как стрелять, но у вас проблемы с инициализацией самих слушателей, например внутри gui я вызываю listener = новый GUIlistener(). И как я могу добавить его в gui? (то есть эквивалент .addActionListener). Кроме того, я открыт для любых предложений по дизайну и был бы очень признателен! –
@AndreiIvanov Вам нужно сосредоточиться на зависимости и поколении. Кто должен знать, что и кто что генерирует. Например, если ваш Gui заинтересован в том, чтобы знать, когда модель меняется, тогда Gui должен зарегистрировать своего слушателя в модели. Затем модели нужно решить, что он хочет сказать ... – MadProgrammer
ой .. получил, спасибо! –