Виды и контроллеры невидимы друг для друга? Как это может быть? - PullRequest
0 голосов
/ 18 марта 2011

Я прочитал, что виды и контроллеры должны быть невидимы друг для друга.

Как контроллер затем прослушивает, скажем, нажатие кнопки в представлении пользовательского интерфейса?

Конечно, контроллер должен знать о представлении addEventListeners или , представление UI должно вызывать функции в контроллере или отправлять события в контроллер.

1 Ответ

0 голосов
/ 18 марта 2011

Мой единственный опыт работы с MVC связан с использованием фреймворка robotlegs, поэтому я попытаюсь объяснить свой подход при использовании этого фреймворка

Мои представления используют только собственные события Flash (MouseEvent.CLICK и т. Д.), Которые прослушиваются в медиаторе для представления. Когда посредник получает собственное событие, он затем отправляет специфичное для приложения событие, например LoginEvent.LOGIN, которое можно сопоставить с последующим выполнением команды с использованием карты команд в вашем контексте.

Извините, если это не имеет особого смысла, но в основном ваши представления запускают нативные события, а ваши посредники будут прослушивать эти нативные события, а затем запускать специфичные для приложения события, которые в свою очередь запускают ваши команды. Вы используете посредника в качестве «ушей» для своего взгляда и не допускаете никакой логики. Контекст приложения позволяет вам запускать команды всякий раз, когда происходят определенные события, поэтому ваши представления и команды разделены.

...