Корректная реализация архитектуры MVC

Я прочитал много статей об архитектуре MVC, но я все еще смущен.

  • Какая схема корректна?
  • Действительно даже существует корректная реализация архитектуры MVC?
  • Я мог использовать другую реализацию архитектуры MVC?

Схема 1

Diagram 1

Схема 2

Diagram 2

Схема 3

Diagram 3

5
задан Glorfindel 23 July 2019 в 15:06
поделиться

3 ответа

MVC можно понять, подумав об ответственности:

Представлению не разрешено изменять состояние модели напрямую - только через Контроллер. Представление все еще может иметь прямой доступ к модели, хотя только для просмотра (или имея копию, не являющуюся официальной моделью).

Модель должна жить в своем собственном юниверсе и не иметь никаких ссылок на контроллеры или представления.

Контроллер контролирует состояние и доступ к модели.

8
ответ дан 14 December 2019 в 01:04
поделиться

Определенно не диаграмма 3! Диаграмма 1 в порядке. Я думаю, что лучше всего в основном диаграмма 2 со стрелкой от контроллера к просмотру.

Предполагая, что вы спрашиваете в контексте веб-приложений, я думаю, вот как выглядит хороший поток MVC:

  1. Когда приходит веб-запрос, это один из двух типов.

    Тип A - это простой запрос, который напрямую сопоставляется с представлением, поэтому контроллер не задействован

    Тип B - это запрос, который сопоставляется с контроллером

  2. Для обоих типов A и B представление всегда считывает данные из моделей напрямую

  3. . Если это запрос типа B, контроллер считывает / обновляет модели и по завершении просит платформу MVC вернуть представление клиенту. Представление считывает модели обновлений и отображает их клиенту.

Этот подход поддерживается платформой Induction MVC .

Надеюсь, это поможет.

1
ответ дан 14 December 2019 в 01:04
поделиться

Моя стратегия изучения хороших методов MVC заключалась в том, чтобы найти кого-то, кто знает, и задать много вопросов. Обращение к кучке людей, которые не знают ваших требований, намерений или идей, не принесет много пользы.

Я считаю, что диаграмма 1 будет считаться «лучшей» диаграммой, но, не зная вашей уникальной ситуации, было бы лучше объяснить ваши потребности тому, кто знает ваши требования и архитектуру MVC.

0
ответ дан 14 December 2019 в 01:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: