- Сравнение архитектурных шаблонов MVC и HMVC
Model-View-Controller (MVC, «Модель-Представление-Контроллер», «Модель-Вид-Контроллер») — схема разделения данных приложения, пользовательского интерфейса и управляющей логики на три отдельных компонента: модель, представление и контроллер — таким образом, что модификация каждого компонента может осуществляться независимо[1].
· Модель (Model) предоставляет данные и реагирует на команды контроллера, изменяя свое состояние[1].
· Представление (View) отвечает за отображение данных модели пользователю, реагируя на изменения модели[1].
· Контроллер (Controller) интерпретирует действия пользователя, оповещая модель о необходимости изменений[1].
HMVC (англ. Hierarchical model–view–controller) — Иерархические Модель-Вид-Контроллер, одно из расширений архитектурного паттерна MVC, позволяющее решить некоторые проблемы масштабируемости приложений, имеющих классическую MVC-архитектуру.
Впервые описано в 2000-м году[1], в одной из статей блога JavaWorld, но некоторые разработчики отмечают, что оно, по сути, является переосмыслением более строгого паттерна PAC (англ.)русск.(англ. Presentation-Abstraction-Control), описанного в 1987 году.
Согласно парадигме HMVC, каждая отдельная MVC триада используется в качестве слоя в иерархической структуре. При этом, каждая триада в этой иерархии независима от других, и может обратиться к контроллеру другой триады. Такой подход существенно облегчает и ускоряет разработку сложных приложений, облегчает их дальнейшую поддержку и масштабирование, способствует повторному использованию кода.