Сведения о вопросе

Математик

23:14, 8th August, 2020

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

Просмотров: 518   Ответов: 11

Я нашел, что такое mvp и mvc, и в чем разница , но это действительно не ответило на этот вопрос.

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

Плюсы

  1. Отображение и обработка разделены


Аферы

  1. Пока ни одного



  Сведения об ответе

прога

10:54, 25th August, 2020

MVC-это разделение m odel, v iew и c ontroller — ни больше, ни меньше. Это просто парадигма; идеал, который вы должны иметь в глубине своего сознания при проектировании классов. Избегайте смешивания кода из трех категорий в один класс.

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

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

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


  Сведения об ответе

dump

22:30, 19th August, 2020

Разделение забот - это большая проблема.

Возможность раздразнить эти компоненты делает код более легким для повторного использования и независимого тестирования. Если вы на самом деле не знаете, что такое MVC, будьте осторожны, пытаясь понять мнения людей, поскольку все еще существует некоторое противоречие о том, что такое "Model" (является ли это бизнес objects/DataSets/DataTables или представляет собой базовый уровень сервиса).

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

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


  Сведения об ответе

davran

21:08, 20th August, 2020

У Джеффа есть сообщение об этом, иначе я нашел некоторые полезные документы на веб-сайте Apple, в учебниках Cocoa ( этот, например).


  Сведения об ответе

lourence

11:36, 26th August, 2020

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

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

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

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

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


  Сведения об ответе

dump

00:49, 29th August, 2020

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

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

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

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


  Сведения об ответе

park

19:07, 25th August, 2020

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


  Сведения об ответе

prince

14:22, 7th August, 2020

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

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


  Сведения об ответе

repe

21:44, 4th August, 2020

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

Это тот же самый принцип, по которому любой, кто потратил более 5 минут на создание веб-сайта, может оценить необходимость хранения ваших HTML markup, JavaScript и CSS в отдельных файлах: если вы просто сбросите весь свой код в один файл, вы получите спагетти, которые впоследствии практически не редактируются.

Поскольку вы спросили о возможном "cons" : я не специалист по проектированию архитектуры программного обеспечения, но, основываясь на моем опыте разработки в MVC, я думаю, что также важно отметить, что следование строгому, без излишеств MVC шаблону проектирования наиболее полезно для 1) легких веб-приложений или 2) как уровень UI более крупного корпоративного приложения. Я удивлен, что эта спецификация не обсуждается больше, потому что MVC не содержит явных определений для вашей бизнес-логики, доменных моделей или вообще чего-либо в уровне доступа к данным вашего приложения. Когда я начал развиваться в ASP.NET MVC (т. е. еще до того, как я узнал о существовании других программных архитектур), я бы в конечном итоге получил очень раздутые контроллеры или даже модели просмотра, битком набитые бизнес-логикой, которая, если бы я работал над корпоративными приложениями, затруднила бы другим разработчикам, незнакомым с моим кодом, его модификацию (т. е. больше спагетти).


  Сведения об ответе

PAGE

13:08, 7th August, 2020

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

Вот хороший ответ на преимущества MVC и вот статья, Как создать SEO дружественный Url.


  Сведения об ответе

PROGA

12:04, 2nd August, 2020

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

Здесь вы можете увидеть еще несколько пунктов Об основных преимуществах архитектуры MVC .


  Сведения об ответе

pumpa

16:41, 5th August, 2020

!

[архитектура mvc][1]

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться