Это MVC, когда представление не взаимодействует с моделью? - PullRequest
5 голосов
/ 30 января 2009

Я разработал MVC (в .NET), где представление не имеет ссылки на модель. Он знает только о контроллере. Традиционный шаблон MVC имеет все части, взаимодействующие друг с другом. В моем случае Контроллер в основном является посредником. Это исключает любые исключения или логику из представления. У него нулевая зависимость от модели. Это больше не MVC?

Ответы [ 4 ]

19 голосов
/ 30 января 2009

То, что вы описываете, на самом деле является подмножеством Model-View-Controller, которое называется Passive View .

alt text

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

Мартин Фаулер говорит об этом в ссылке выше и кратко обсуждает другие варианты здесь .

1 голос
/ 30 января 2009

Полагаю, вместо MVC, это просто VC, а? ;)

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

0 голосов
/ 30 января 2009

Ваш подход похож на MVP , но я не могу сказать наверняка без более подробной информации.

0 голосов
/ 30 января 2009

В самом строгом смысле этого слова нет. Но есть ли у ПУТИ способ связываться с моделью при необходимости без изменения архитектуры / интерфейсов?

[Например, если у вас реализован метод TalkToModel (), даже если вы не используете его YET, на мой взгляд, это MVC.]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...