Версия MVC в Интернете отличается от традиционной версии MVC? - PullRequest
2 голосов
/ 10 апреля 2009

Я проделал большую работу над MVC в Интернете, и мы узнаем об этом в моем классе ООП. Я вижу некоторые различия, и я не могу сказать, связано ли это с тем, что веб-версия шаблона MVC отличается от традиционной, или я ее неправильно понял.

Насколько я понимаю, модель (ваши плоские файлы, СУБД и т. Д.) Является общим объектом размещения данных. Представление (браузер, HTML и т. Д.) - это то, с чем взаимодействует пользователь, а контроллер является посредником между действиями пользователя и данными. Контроллер является наиболее специфичной для домена частью, он управляет представлениями, сообщает модели, что ей нужно, и сообщает представлениям, что отображать.

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

Что вы думаете об этом?

Ответы [ 2 ]

3 голосов
/ 10 апреля 2009

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

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

0 голосов
/ 10 апреля 2009

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

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