По сути, механизм обработки событий - это просто шаблон производителя-потребителя. Представьте, что вы создаете какие-то события (действие), и есть набор слушателей, которым необходимо уведомить о вашем действии.
хотите ли вы использовать для использования встроенной обработки событий Java, зависит от того, сколько кода вы уже написали, если рефакторинг вашего кода для использования обработки событий Java требует больших усилий, и у вас есть только ограниченный набор события, то вы можете написать свою собственную систему передачи сообщений. Но очевидно, что использование механизма обработки событий Java должно быть предпочтительным, так как он заботится об уведомлении всех слушателей, которые зарегистрированы для этого события, вам не нужно беспокоиться об уведомлении каждого слушателя, и позже это поможет вам в отладке, если что-то пойдет. неправильно. Я надеюсь, что это отвечает на ваш первый вопрос
Короче говоря, вы можете написать свои собственные события, такие как HumanMovedEvent, MonsterMovedEvent и т. Д.
Возвращаясь к вашему 2-му вопросу, да, в MVC контроллер знает, какие все представления ему нужно инициировать для какого-либо конкретного действия. Контроллер может выбрать любое конкретное представление для любого конкретного действия, скажем, если вы выполняете какое-то действие A, вы можете вызвать представление V.
и да, ваша программа начинается с отправки запроса из вашего пользовательского интерфейса в контроллер. Затем контроллер выбирает, какое представление необходимо визуализировать для этого конкретного действия.
Надеюсь, я дал понять:)