Что такое MVC и каковы преимущества его? [закрытый]

Если вам нужно сделать то же самое с mongoid:

Model.all.rename(:old_field, :new_field)

UPDATE

В синтаксисе monogoid 4.0.0 есть изменение:

Model.all.rename(old_field: :new_field)
46
задан Community 23 May 2017 в 10:31
поделиться

9 ответов

MVC является разделением model, view и controller — ничто больше, ничто меньше. Это - просто парадигма; идеал, который Вы должны иметь позади своего ума при разработке классов. Постарайтесь не смешивать код от этих трех категорий в один класс.

, Например, в то время как сетка таблицы представление должно, очевидно, представить данные, однажды показанные, это не должно иметь кода того, где получить данные из, или на что похожа его собственная структура ( модель ). Аналогично, в то время как это может иметь функцию для подведения столбца, фактическое подведение итогов, как предполагается, происходит в контроллер .

А 'сохранили файл' диалоговое окно ( представление ), в конечном счете передает путь, когда-то выбранный пользователем, на контроллер , который тогда спрашивает модель для данных и делает фактическое сохранение.

Это разделение обязанностей позволяет гибкость в будущем. Например, потому что представление не заботится о базовой модели, поддержка нескольких форматов файлов легче: просто добавьте образцовый подкласс для каждого.

46
ответ дан Sören Kuklau 26 November 2019 в 20:32
поделиться

Разделение проблем является biggy.

Способность дразнить эти компоненты независимо делает код легче к повторному использованию, и независимо протестируйте. Если Вы на самом деле не знаете, каков MVC, осторожны относительно попытки понять мнения людей, поскольку существует все еще некоторая конкуренция о том, что "Модель" (является ли это бизнес-объектами/Наборами данных/Таблицами данных или если это представляет базовый уровень служб).

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

А хороший раунд всех различных типов MVC доступен здесь .

13
ответ дан Silver Solver 26 November 2019 в 20:32
поделиться

Jeff имеет сообщение об этом, иначе я нашел некоторые полезные документы о веб-сайте Apple в учебных руководствах по Какао ( этот , например).

6
ответ дан OysterD 26 November 2019 в 20:32
поделиться

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

Без этой фундаментальной сегрегации дизайна "компоненты" принятие этих методов было бы намного более трудным.

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

Редактирование:

, Если я помню правильно, , это - довольно хороший подкаст на мВ* шаблоны (слушал его только что!)

3
ответ дан Rob Cooper 26 November 2019 в 20:32
поделиться

Один довод "против", о котором я могу думать, - то, при необходимости в действительно быстром доступе к данным в представлении (например, игровые данные анимации как положения кости.) Это очень неэффективно для хранения слоя разделения в этом случае.

Иначе, для большинства других приложений, которые более управляемы данными, чем управляемая графика, она походит на логический способ управлять UI.

1
ответ дан Chris Blackwell 26 November 2019 в 20:32
поделиться

Если Вы следуете за stackoverflow подкастами, можно ли услышать Jeff (и Geoff?) обсуждают его величие. http://blog.stackoverflow.com/2008/08/podcast-17/ . Но помните, что использование этих отдельных слоев означает, что вещи легче в будущем - и тяжелее теперь. И слои могут делать вещи медленнее. И Вам, возможно, не понадобятся они. Но не позволяйте этому мешать Вам изучить то, что это - при создании больших, устойчивых, долговечных систем, это неоценимо.

1
ответ дан Georgia 26 November 2019 в 20:32
поделиться

Одним из основных преимуществ MVC, который здесь не упоминается, является то, что MVC предоставляет RESTful URL, которые позволяют SEO. Когда вы называете свои Контроллеры и Действия с умом, поисковым системам будет проще найти ваш сайт, если они только посмотрят на URL вашего сайта. Например, у вас есть веб-сайт по продаже автомобилей и страница, на которой отображаются доступные автомобили Lamborghini Veneno, вместо www.MyCarSale.com/product/6548 со ссылкой на страницу, которую вы можете выбрать www.MyCarSale. com / SportCar / Lamborghini-Veneno URL для целей SEO.

Здесь - хороший ответ на преимущества MVC, а здесь - статья Как создать оптимизированный для SEO URL.

1
ответ дан Community 26 November 2019 в 20:32
поделиться

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

Одна и та же модель может иметь любые виды, например, нет) Одна и та же информация может отображаться в виде различных графических представлений. Один и тот же вид может иметь разные номера моделей, например, разные детали могут быть показаны в виде одного графика, скажем, в виде гистограммы. Это то, что можно использовать как в View, так и в Model.

Улучшения в представлениях и другая поддержка новых технологий для построения представления могут быть легко реализованы.

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

1
ответ дан Kiruba 26 November 2019 в 20:32
поделиться

! [Архитектура MVC] [1]

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

0
ответ дан 26 November 2019 в 20:32
поделиться
Другие вопросы по тегам:

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