Вопрос номер три в моих поисках, чтобы правильно понять MVC , прежде чем я реализовать:Использование MVC, как следует обрабатывать связь между представлениями? Между моделями?
У меня есть два случая в виду:
- главное окно приложения необходимо открыть окно предпочтения. (Один вид , ссылающийся на другой вид.)
- Основная модель приложения нуждается в объекте в настройках Модель. (Одна модель доступ к другой модели.)
Эти вопросы связаны с тем, что оба они связаны с передачей информации через троек Model-View-Controller, тема, которую я не нашел много обсуждение в моем Googling.
Очевидным способом исправить это является обертывание всего объекта «приложения» верхнего уровня, который обрабатывает транзакции между моделями и позволяет контроллерам ссылаться друг на друга. Я видел, как это реализовано, но я не уверен, что это хорошая идея. Я также вижу возможности, связанные с использованием контроллеров, наблюдающих более чем одну модель, и ответы на несколько представлений, но это похоже на то, что она станет очень захламленной и трудной для подражания.
Предложения о том, как лучше всего осуществить такой перекрестный разговор? Я чувствую, что это очень очевидный вопрос, но я не смог найти хорошо документированное решение.
В более широкой заметке, если у кого есть ссылка, которая показывает типичные подходы к этим типам проблем MVC, я бы с удовольствием ее увидел. Мне не повезло найти прочные, нетривиальные ссылки. Примеры в Python были бы прекрасны, но я с удовольствием прочитаю что-нибудь.
Edit 1:
Я вижу некоторые довольно интересные вещи, как говорится ниже, и вообще ни с кем, кажется, есть проблема с подходом, я описал. Это уже почти ленивая форма дизайна FrontController, которую описывает Винсент. Я, конечно же, не предвижу никаких проблем при реализации этой модели, однако, похоже, что кто-то действительно не задал вопрос о связи между моделями. Кажется, что все ответы касаются коммуникации между объектами в одной Модели. Меня больше интересует поддержка отдельных моделей для отдельных компонентов приложения, поэтому я не заполняю пятьдесят свойств состояния в одном классе модели. Должен ли я поддерживать их как подмодули?
Мы говорим о нескольких классах в модели. Модель ссылается на ВСЕ классы (компоненты), которые представляют данные и операции с данными, составляют модель. Эти классы сотрудничают друг с другом. – 2008-10-23 02:47:54