MVC (эмвиси) -- что это в программировании

MVC -- сокращение от ""Model View Controller"" (Модель, Вид/Представление, Контроллер) -- концепция разбиение задачи ответа приложения в ответ на какой-либо запрос на три части (в общем случае):

  • Работу контроллера (обычно логика верхнего уровня, то есть тут принимаются ключевые решения, какой фунционал запускать)
  • Работу модели (обычно работа с данными, представление разных сущностей в системе, тут может располагаться и код работающий в СУБД)
  • Работу представления (особенно если результаты отправляются пользователю для демонстрации в том или ином виде, напр. для сайтов в файлах представления, данные "оборачиваются" html-тегами)

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

Также можно добавить, что:

  • Пользователь видит представление
  • Контроллер отдает пользователю представление (как-то его параметризируя)
  • Контроллер, если требуется для ответа на конретный запрос пользователя, общается к модели (или нескольким моделям) для получаения данных (или выполнения других действий CRUD) и передает полученные данные представлению, чтобы там они были оформлены в окончательном виде для показа пользователю.

Примеры реализации MVC

Концепции MVC следуют некоторые программные каркасы (фрэймворки).
Например: