Что такое MVC (контроллер представления модели)?[закрыто]
-
02-07-2019 - |
Вопрос
В последнее время я слышал, что термин MVC (Model View Controller) вызывает много шума, но что это на самом деле?
Решение
Возможно, вы захотите взглянуть на то, что Мартин Фаулер говорит об архитектурах MVC, MVP и пользовательского интерфейса в целом по адресу Сайт Мартина Фаулерса.
Другие советы
Мне нравится эта статья автор: Мартин Фаулер.Вы увидите, что MVC на самом деле более или менее мертв, строго говоря, в своей первоначальной области программирования rich UI.Различие между Представлением и контроллером неприменимо к большинству современных наборов инструментов пользовательского интерфейса.
Похоже, в последнее время этот термин обрел новую жизнь в кругах веб-программистов.Я не уверен, действительно ли это MVC, или просто повторное использование имени для некоторых тесно связанных, но слегка отличающихся идей.
MVC - это шаблон проектирования, впервые разработанный в старые времена smalltalk.
Концепция заключалась в том, что модель представляла бы состояние вашего приложения и логику, а контроллеры обрабатывали бы ввод-вывод между "Представлениями".
Представление - это представление состояния в модели.Например, ваша модель может быть документом электронной таблицы, и у вас может быть представление, представляющее ее в виде электронной таблицы, и представление, представляющее ее в виде сводной таблицы.
Современный MVC был загрязнен поддельным веб-мусором MVC, поэтому я позволю другим ответить на этот вопрос.
Как указано в теге в вашем вопросе, это шаблон проектирования.Но это, вероятно, вам не поможет.По сути, это способ организовать ваш код в логические группировки, которые разделяют различные части и легко модифицируют их.
Упрощение:Модель = Структура данных / бизнес-логика Представление = Уровень вывода (т.е. HTML-код) Контроллер = Уровень передачи сообщений
Итак, когда люди говорят о MVC, они имеют в виду разделение кода на эти логические группы, чтобы сохранить его чистым, структурированным и, надеюсь, слабо связанным.Следуя этому шаблону проектирования, вы сможете создавать приложения, в которых представление могло бы быть полностью изменено на что-то другое, даже не прикасаясь к вашему контроллеру или модели (т. Е.переключение с HTML на RSS).
В интернете есть тонны руководств по этому вопросу, просто погуглите их, и я уверен, что вы найдете хотя бы одно, которое объяснит это в понятных вам терминах.
Вот наивное описание MVC : http://www.devcodenote.com/2015/04/mvc-model-view-controller.html
Фрагмент:
Определение :Это шаблон проектирования, который разделяет приложение на несколько уровней функциональности.
Слои:
Модель Представляет данные.Он действует как интерфейс между базой данных и приложением (как объект данных).Он будет обрабатывать проверки, ассоциации, транзакции и т.д.
Контроллер Он собирает и обрабатывает данные.Обрабатывает код, который выполняет выбор данных и обмен данными.
Вид Отображает выходные данные для пользователей.
Википедия, кажется, пока описывает это лучше всего:
http://en.wikipedia.org/wiki/Model-view-controller
Model-view-controller (MVC) - это архитектурный шаблон, используемый в разработке программного обеспечения.Успешное использование шаблона изолирует бизнес-логику от соображений пользовательского интерфейса, что приводит к созданию приложения, в котором легче изменять либо внешний вид приложения, либо лежащие в его основе бизнес-правила, не затрагивая другие.В MVC модель представляет информацию (данные) приложения и бизнес-правила, используемые для манипулирования данными;представление соответствует элементам пользовательского интерфейса, таким как текст, флажки и так далее;и контроллер управляет деталями, включающими связь с моделью действий пользователя, такими как нажатия клавиш и движения мыши
Парадигма пользовательского интерфейса MVC или Model-View-Controller была впервые описана Трюгве Ренскаугом (Trygve Reenskaug) из Xerox PARC.Впервые появился в печати в журнале "Байт", том 6, номер 8, в августе 1981 года.
Это Что такое MVC статья в блоге Орейли освещает вас.
MVC - это шаблон архитектуры программного обеспечения, который отделяет представление от взаимодействия с пользователем.Как правило, модель состоит из данных приложения и функций, которые взаимодействуют с ним, в то время как представление представляет эти данные пользователю;контроллер выступает посредником между ними.
Шаблон проектирования MVC:
4 части = Пользователь, Представление, Контроллер, Модель.
Пользователь:- видит представление и использует контроллер.
Модель:- хранит данные и обновляет Модель о наличии новых данных / состояний.
Вид:- отображает данные, имеющиеся в Модели.
Контроллер:- принимает запрос от пользователя на получение или установку информации, затем обменивается данными либо с Представлением, либо с Моделью, соответственно.- это "попадает" через Представление.- он "настраивается" через Модель.
Это способ отделить базовую функциональность вашего приложения (модели) от способа, которым оно взаимодействует с пользователем (представлением).Контроллер координирует, как модель и представление взаимодействуют друг с другом.
Хотя на данный момент это в моде, важно помнить, что неспособность самой модели точно определить, как ее данные представляются пользователю, может рассматриваться как негативный момент.Самый очевидный пример - с HTML.Первоначальное намерение HTML состояло в том, что должно быть четкое разделение модели (HTML) от представления (визуализируемой веб-страницы) с помощью контроллера (браузера).Это первоначальное намерение вызвало такую негативную реакцию, что браузеры подвергаются критике, если они не отображают пиксель страницы идеально в соответствии с желаемым видом дизайнера.
MVC - это способ разделить элемент пользовательского интерфейса на 3 отдельные концепции.Модель - это данные, на основе которых работает интерфейс.Представление - это то, как элемент представлен визуально (или, может быть, на слух?).Контроллер - это логика, которая оперирует данными.
Например, если у вас есть какой-то текст, которым вы хотите манипулировать в пользовательском интерфейсе.Простая строка может представлять данные.Представление может представлять собой текстовое поле.Контроллер - это логика, которая преобразует входные данные от пользователя - скажем, ввод символов или мыши - и вносит изменения в базовую модель данных.
Как многие уже говорили, MVC - это шаблон проектирования.Сейчас я преподаю одному из своих коллег и объяснил это следующим образом:
Models - Уровень доступа к данным.Это может быть прямой доступ к данным, веб-сервисы и т. Д
Views - Уровень представления вашего приложения.
Controllers - это бизнес-логика для вашего приложения.
Этот шаблон улучшает разработку, основанную на тестировании.