MVC: где хранить и создавать представления?

В больших приложениях много разных представлений, как правильно их хранить? Создать отдельный класс MainView, в котором будут храниться ссылки на все представления? Или хранить каждую ссылку отдельно в контроллере?

Тот же вопрос про модели
  • Вопрос задан
  • 291 просмотр
Пригласить эксперта
Ответы на вопрос 2
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Мы сейчас про какое MVC? их много разных. Из вашего вопроса например можно сделать вывод о двух вариантах.

Создать отдельный класс MainView, в котором будут храниться ссылки на все представления?


Это напоминает MVC 1979 года выпуска. В этом случае контроллеры занимаются только тем что обрабатывают пользовательский ввод. А всем что касается представления занимается собственно View. Вьюшка тут у нас активна, в ней есть куча логики и бывает так что этой логики даже больше чем в модели. В нашем примере это будет тот самый MainView который будет работать напрямую с моделью и забирать нужное состояние из нее и сама себя обновлять по изменениям (или ButtonView - зависит от того чему мы хотим дать представление. Описание MVC не делает никаких ограничений сколько у вас может быть этих штуковин на скрин).

Или хранить каждую ссылку отдельно в контроллере?


Это больше напоминает mediating controller MVC. Этот подход был придуман с целью убрать зависимость вьюшки от модели. По сути вьюшка становится пассивной. Теперь контроллер решает когда ее обновлять и как вообще ее рендрить.

Так что определитесь что вам нужно. Подозреваю что все же второе потому как первое никто не использует активно уже лет 20.
Ответ написан
Комментировать
VGrabko
@VGrabko
Golang, Php, Js
Вы ммм...

Короче. Смотрите как это работает в остальных MVC фреймворках. К примеру в laravel
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы