4 ответов:
Согласно Struts2 интервью вопросы и ответы
Struts2-это архитектура на основе Pull-MVC, в которой все данные хранятся в стеке значений и извлекаются слоем представления для визуализации.
Конкретно:
В случае Push-MVC данные (модель) строятся и передаются в просмотрите слой контроллерами, поместив его в переменные области видимости например, запрос или сеанс. Типичный пример-пружина MVC и распорки 1. Тяга-MVC с другой стороны помещает типично построенные данные модели в контроллерах хранятся в общем месте, то есть в действиях, которые затем получает визуализацию по слою вида.
Понятие push и pull относится к тому, что сервер делает по отношению к клиенту. В приложении" push " сервер передает данные клиентам по собственной инициативе. В приложении" вытягивания " сервер вытягивает или ожидает и получает сообщения, инициированные клиентами.
Хорошее объяснение дано здесь MVC-pattern-its-importance-push-pull и здесь pull-vs-push-MVC-architecture
Стойки 1 и пружина оба используют Push MVC. Этот вопрос может быть полезным весна в MVC-комплекс-модель-население-из-нескольких источников использует Struts2 тянуть
Struts2, Играй! и так далее-это все виды pull model реализаций шаблона MVC.
Термины "push" и "pull " относятся непосредственно к типу реализации модели наблюдателя, используемой между представлением и моделью. Как указано в объяснении модели наблюдателя GoF, мы имеем:
На одной из крайностей, которую мы называем моделью толчка, субъект посылает наблюдателям подробную информацию об изменении, хотят они этого или нет. В другой крайностью является модельвытягивания ; субъект не посылает ничего, кроме самого минимального уведомления, и наблюдатели просят подробности явно после этого.
Это означает, что реализация push model требует, чтобы представление и модель были реализованы на одном языке и выполнялись в одной и той же среде. Хорошими примерами такого рода реализации являются одностраничные приложения Javascript , в которых выполняются компоненты View и Model внутри браузера и фреймворка, то естьBackbone , предусмотрен механизм MVC (он же Observer). Часто компонент модели взаимодействует с каким-либо серверным API, чтобы сохранить и получить сохраненные данные.
С другой стороны, pull model позволяет реализовать MVC с использованием различных технологий для компонента View и компонентов Controller / Model. В этом виде MVC нет явного использования шаблона наблюдателя, и представление взаимодействует исключительно с контроллером. Смотреть компонент, который обычно выполняется в браузере, отправляет компоненту контроллера запрос обновлений модели или состояния модели. Обычно запросы реализуются по протоколу HTTP. Этот вид реализации требует использования некоторого типа" дополненного языка сценариев HTML ", такого как JSP, который позволяет автоматически создавать связь между представлением и контроллером.
Извините .. Я не думаю, что распорки 1, распорки 2 и пружинный MVC можно принять за PUSH MVC ..
Поскольку обе платформы используют фронтальный контроллер[класс Filer для Struts и контроллер Listener для Spring], определенный в их соответствующем дескрипторе развертывания. Теперь обе эти фреймовые работы сохраняют данные формы в своем соответствующем объекте bean [или model], используя этот контроллер путем отражения.
Теперь из нашего контроллера действий мы можем получить объект bean и получим значения но во фронт-контроллере, где фактически генерируется объект bean[или модель], задайте значение в их resperctive поле с помощью запроса.getParameter (param) или запрос.внутренние методы getParameterValues(param).. Так что это можно считать притяжением.
Итак, согласно моему мышлению, мы можем сказать, что эти фреймворки могут использовать два слоя, а именно PULL layers, используемые конечным программистом, и PUSH layers, используемые базовыми классами фреймворка.
Comments