Иерархическая модель-представление-контроллер

Иерархическая модель-представление-контроллер ( HMVC ) — это архитектурный шаблон программного обеспечения , вариант модели-представления-контроллера (MVC), аналогичный представлению-абстракции-управлению (PAC), который был опубликован в 2000 году в статье. [ 1 ] в журнале JavaWorld . Авторы, очевидно, не знали о PAC, опубликованном 13 годами ранее. [ 2 ]
Контроллер осуществляет некоторый контроль: сначала он выбирает модель, а затем представление, реализуя механизм утверждения со стороны контроллера. Модель не позволяет представлению напрямую обращаться к источнику данных.
Пример
[ редактировать ]Самым большим практическим преимуществом использования архитектуры HMVC является «виджетизация» структур контента. [ 3 ] Примером могут быть комментарии, рейтинги, отображение RSS-каналов Twitter или блога или отображение содержимого корзины покупок на веб-сайте электронной коммерции. По сути, это часть контента, которую необходимо отображать на нескольких страницах и, возможно, даже в разных местах, в зависимости от контекста основного HTTP-запроса.
Традиционные фреймворки MVC обычно не дают прямого ответа на эти типы структур контента, поэтому программисты часто дублируют и переключают макеты, используют собственные помощники, создают свои собственные структуры виджетов или файлы библиотек или извлекают несвязанные данные из основного запрошенного контроллера. для перехода к представлению и частичному рендерингу. Обратной стороной является то, что ответственность за рендеринг определенного фрагмента контента или загрузку необходимых данных распределяется по нескольким областям и дублируется в соответствующих местах.
HMVC, или, в частности, возможность отправлять подзапросы Контроллеру для выполнения этих обязанностей, направлена на решение этой проблемы. Структура имитирует структуру традиционного MVC. Например, если нужно загрузить некоторые данные о комментариях и отобразить их в формате HTML, можно отправить запрос контроллеру комментариев с некоторыми параметрами. Затем запрос взаимодействует с моделью, выбирает представление, которое отображает содержимое. Отличие от традиционного MVC заключается в том, что вместо отображения комментариев на отдельной странице они отображаются внутри статьи, которую просматривает пользователь. В этом отношении HMVC стремится повысить модульность кода , обеспечить возможность повторного использования и обеспечить лучшее разделение задач.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Кай, Джейсон; Капила, Ранджит; Пал, Гаурав (21 июля 2000 г.). «HMVC: Многоуровневая модель для разработки надежных клиентских уровней» . JavaWorld . Проверено 18 июля 2020 г.
- ^ «ТП» (8 сентября 2000 г.). «HMVC PAC?» . Письма в редакцию. JavaWorld . Архивировано из оригинала 19 марта 2006 г.
- ^ Вэнс Лукас (апрель 2011 г.). «почему шаблон HMVC?» . StackOverflow . Проверено 15 октября 2013 г.