MVC - Вызов методов контроллера - PullRequest
2 голосов
/ 26 мая 2010

Мое приложение соответствует шаблону проектирования MVC. Проблема, с которой я продолжаю сталкиваться, заключается в необходимости вызова методов внутри класса Controller извне этого класса Controller (например, класс View хочет вызвать метод Controller или класс Manager хочет вызвать метод Controller). Разрешен ли вызов методов Controller таким способом в MVC? Если это разрешено, как правильно это сделать?

В соответствии с версией MVC, за которой я следую (кажется, существует очень много разных версий), представление знает о модели, а контроллер знает о представлении. Делая это таким образом, я не могу получить доступ к контроллеру. Вот лучший сайт, который я нашел, и тот, который описывает версию MVC, на которую я слежу: http://leepoint.net/notes-java/GUI/structure/40mvc.html. Блок кода основной программы действительно показывает, как это работает.

Спасибо за любые ответы.

1 Ответ

1 голос
/ 26 мая 2010

. Внимательно посмотрите на этот абзац из статьи, на которую вы ссылаетесь:

Посмотреть Это представление не знает о контроллере, за исключением , что он предоставляет методы для регистрации слушателей контроллера. Возможны и другие организации (например, прослушиватели контроллера - это не частные переменные, на которые может ссылаться View, View вызывает контроллер для получения прослушивателей, View вызывает методы в Controller для обработки действий, ...).

Здесь у вас есть шаблон наблюдателя между видом и контроллером. MVC - это не один шаблон как таковой, а как минимум два вместе взятых.

Один из способов управлять связью View / Controller - использовать события. Представление запускает события для определенных действий пользователя (не зная обязательно, кто может их обработать.) Контроллер обрабатывает эти события и действует соответственно.

...