Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PUIS.docx
Скачиваний:
7
Добавлен:
03.12.2018
Размер:
1.01 Mб
Скачать

Типовые решения представлений

Когда речь заходит о возможных способах реализации представлений, внимания заслуживают три основных типовых решения: представление с преобразованием (Transform View), представление по шаблону (Template View) и двухэтапное представление (Two Step View). По существу, выбор сводится к одному из двух вариантов — воспользоваться представлением с преобразованием или представлением по шаблону в базовой одноэтапной версии либо усложнить любое из них до уровня двухэтапного представления.

Представление по шаблону позволяет оформлять представление в соответствии со структурой страницы и вставлять в нее специальные маркеры, отмечающие позиции фрагментов динамического содержимого. Представление по шаблону поддерживается целым рядом популярных платформ, многие из которых основаны на модели страниц сервера (скажем, ASP, JSP и PHP) и позволяют внедрять в текст страницы код на полнофункциональном языке программирования. Такое решение отличается мощностью и гибкостью; если код сложен и запутан, задача сопровождения системы чрезвычайно затрудняется. Поэтому использование технологий страниц сервера требует аккуратности и последовательности в обособлении логики кода от структуры страницы, которое зачастую достигается при посредничестве вспомогательного объекта (helper).

Примером реализации представления с преобразованием может служить XSLT. Эта технология оказывается весьма эффективной, если данные домена сохраняются в формате XML или допускают быстрое преобразование в XML. Входной контроллер выбирает подходящую таблицу стилей XSLT и применяет ее к XML-коду, описывающему модель.

Если представление задается с помощью процедурных сценариев, для написания кода можно пользоваться представлением с преобразованием, представлением по шаблону или смесью двух подходов в любой подходящей пропорции.

Далее принимается решение о том, использовать одноэтапную версию представления (рис. 4.2) или прибегнуть к соответствующей форме двухэтапного представления. Одноэтапный вариант предусматривает преимущественно по одному компоненту представления для каждого интерфейсного экрана приложения. Код представления получает данные домена и преобразует их в формат HTML.

Двухэтапное представление (рис. 4.3) разделяет процесс на две стадии: на первой на основе данных домена формируется логический экран, который на второй стадии трансформируется в код HTML. Для каждого экрана существует одно представление первого этапа, но для приложения в целом — только одно представление второго этапа.

Достоинство двухэтапного представления заключается в том, что решение о варианте преобразования в HTML принимается в одном месте. Это существенно облегчает задачу внесения глобальных изменений, поскольку для модификации каждого экрана достаточно отредактировать данные единственного объекта. Разумеется, воспользоваться таким преимуществом удастся только в том случае, когда логическое представление остается постоянным, т.е. различные экраны компонуются по одному принципу. Сайты, спроектированные по излишне сложным схемам, единообразием логической структуры обычно не отличаются.

Рис 4.2 Пример одноэтапного построения

Рис. 4.3. Пример двухэтапного представления

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]