Как оповещать контроллер о действиях пользователя? Решил написать простенькое приложение, используя MVC. Связь между моделью и представлением примерно ясна: Модель - субъект, вьюверы - слушатели. При обновлении данных, модель оповещает всех слушателей. Представление, когда получает эти данные, перерисовывается на их основе. Какая связь между представлением и контроллером? Как контроллер должен узнать о кликах на кнопки или о движении мыши? После прочитанных статей пришел к выводу, что представление должно внутри себя хранить ссылку на контроллер и при необходимости делегировать задачи методам контроллера. Например, в представлении создаем кнопку и внутренний класс, который будет слушателем этой кнопки. Во внутреннем классе, в методе actionPerformed, вызываем определенный метод контроллера. То есть, используется паттерн "Стратегия": представление делегирует часть своих обязанностей стратегии-контроллеру. Я все правильно понял? Если да, то кто выбирает, какому вьюверу какой контроллер предоставить? Или этим занимается сам контроллер, передавая себя в качестве аргумента в конструктор представления? ----------------- Второй вопрос: Может ли в приложении быть несколько контроллеров? Если да, то в каких случаях? Как происходит их переключение и обмен данными между ними?