2010-02-25 3 views
0

В общем смысле MVC является отношением View и Controllers, как правило, ожидаемым как M: 1? То есть, многие представления будут использовать один и тот же контроллер? Но представление не будет использовать много разных контроллеров?MVC: отношения кардинальности представлений и контроллеров

Или, должен ли я иметь возможность менять любой вид с любого контроллера и все ли работать? Я вижу довольно жесткую зависимость между этими двумя в настоящее время, и поэтому это не будет работать с моим текущим макетом ...

Я пытаюсь создать что-то для проекта класса, и я не уверен, как организовать/спроектировать мои взгляды и контроллеры.

Обновление: Ответы, которые я получил до настоящего времени, были полезными, но не окончательными. Давайте немного расширим мой вопрос. В ретроспективе важным аспектом является то, что модель может измениться (шаблон стратегии *). В одном случае модель может создать базу данных. В другом случае он может считываться из базы данных. Моя первоначальная цель проекта заключалась в том, чтобы получить единый (хотя и простой) вид, который будет иметь дело со всеми моделями.

* Я прочитал (here), что контроллер можно рассматривать как реализацию шаблона стратегии. Моя модель будет реализована подобным образом, но по-разному.

Вот быстрая (неполный) диаграмма классов концепции (с учетом обновленной информации):

Class Diagram of my MVC implementation concept http://theopensourceu.com/wp-content/uploads/2010/02/MVC-2334703.png

ответ

1

мнения делает и не должно ничего о контроллерах знает. В этом отношении, я бы сказал, отношения не существует.

Вид получает модель и отображает ее. Кто подготовил эту модель, в принципе не имеет значения.

Конечно, на практике границы иногда тают. По какой-то причине, упрощающей зависимость кода, представление иногда узнает что-то о том, какой контроллер сжег огонь. Но если вы говорите о чисто концептуальном обсуждении, то нет, нет прямой связи между контроллером и представлением. Скорее, они общаются через посредника, то есть модель.

  ControllerX 
-------------------------------- 
Model1  Model2  Model3 
    |   |   | 
View1  View2  View3 

Такой же вид в принципе может выводиться несколькими контроллерами. Если контроллер способен создать экземпляр модели, то это довольно много.

0

Мой собственный взгляд на структуру MVC это:

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

При этом один контроллер может использовать множество моделей и видов, но не наоборот.

Смежные вопросы