stringtranslate.com

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

Структура приложения с PAC .

Иерархическая модель–представление–контроллер ( HMVC ) — это программный архитектурный шаблон , вариация модели–представления–контроллера (MVC), аналогичная презентации–абстракции–управлению (PAC), которая была опубликована в 2000 году в статье [1] в журнале JavaWorld Magazine. Авторы, по-видимому, не знали о PAC, который был опубликован 13 годами ранее. [2]

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

Пример

Наибольшее практическое преимущество использования архитектуры HMVC — это «виджетизация» структур контента. [3] Примером могут служить комментарии, рейтинги, отображение RSS-каналов Twitter или блога или отображение содержимого корзины покупок для веб-сайта электронной коммерции. По сути, это часть контента, которая должна отображаться на нескольких страницах и, возможно, даже в разных местах, в зависимости от контекста основного HTTP-запроса.

Традиционные фреймворки MVC, как правило, не дают прямого ответа для этих типов структур контента, поэтому программисты часто в конечном итоге дублируют и переключают макеты, используют пользовательские помощники, создают свои собственные структуры виджетов или файлы библиотек или извлекают несвязанные данные из основного запрошенного контроллера, чтобы протолкнуть их в представление и отобразить в частичном виде. Недостатком является то, что ответственность за отрисовку определенной части контента или загрузку требуемых данных утекает в несколько областей и дублируется в соответствующих местах.

HMVC, или, в частности, возможность отправлять подзапросы Контроллеру для обработки этих обязанностей, направлена ​​на решение этой проблемы. Структура имитирует структуру традиционного MVC. Например, если нужно загрузить некоторые данные о комментариях и отобразить их в формате HTML, можно отправить запрос Контроллеру комментариев с некоторыми параметрами. Затем запрос взаимодействует с Моделью, выбирает Представление, которое отображает содержимое. Отличие от традиционного MVC заключается в том, что вместо отображения комментариев на полностью отдельной странице они отображаются в строке под статьей, которую просматривает пользователь. В этом отношении HMVC стремится повысить модульность кода , способствовать повторному использованию и поддерживать лучшее разделение задач.

Смотрите также

Ссылки

  1. ^ Cai, Jason; Kapila, Ranjit; Pal, Gaurav (21 июля 2000 г.). «HMVC: многоуровневая модель для разработки сильных клиентских уровней». JavaWorld . Получено 18 июля 2020 г.
  2. ^ "TP" (8 сентября 2000 г.). "Является ли HMVC PAC?". Письма в редакцию. JavaWorld . Архивировано из оригинала 2006-03-19.
  3. ^ Вэнс Лукас (апрель 2011 г.). "почему шаблон HMVC?". StackOverflow . Получено 15 октября 2013 г.