MVC? CMV!


Для меня более осмыслена другая последовательность терминов в широко известной аббревиатуре MVC — «Model — View — Controller».

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

Контроллер принимает входные данные, что-то валидирует, проверяет права доступа и т. д., затем подключает к работе необходимые модели предметной области.

Когда модели сделали своё дело, контроллер передаёт эстафету слою отображения — для вывода результатов работы. Отображение может быть человеко-читаемым или машинным (HTML, JSON, XML, элементы GUI и т.д.).

Таким образом, налицо логично выстроенная цепочка «Controller — Model — View», то есть CMV.