Каталог статей
Поиск по базе статей  
Статья на тему Интернет » Интересное в сети » Freja&nb p;&mda h; модель, представление, контроллер

 

Freja&nb p;&mda h; модель, представление, контроллер

 

 

Рассказ о Freja JavaScript Framework мы начнем с нескольких общих слов, касающихся шаблона проектирования MVC (Model View Controller). Думаю, что практически все читатели, как минимум, десяток раз сталкивались с этим понятием, но, наверное, не каждый знает, что именно под ним понимается. Попробуем объяснить в двух словах. Итак, Model View Controller — это шаблон проектирования (или, если другими словами, архитектура программного обеспечения), в котором модель данных приложения (Model, модель), пользовательский интерфейс (View, представление) и управляющая логика (Controller, контроллер) разделены на три отдельных компонента. При этом изменение одного из перечисленных компонентов оказывает минимальный эффект на оставшиеся компоненты.

загрузка...

 

 

То есть шаблон MVC фактически позволяет разнести данные, представление и обработку действий пользователя на разные уровни. Сегодня, по мнению значительной части разработчиков, именно MVC является одним из лучших решений в плане проектирования ПО.

Теперь посмотрим, за что каждый из компонентов MVC отвечает:

  • Model (модель) — этот компонент предоставляет данные (как правило, для View), а также реагирует на запросы от контроллера, изменяя свое состояние;
  • View (представление) — этот компонент отвечает за, условно говоря, отображение информации (пользовательский интерфейс);
  • Controller (контроллер) — этот компонент интерпретирует данные, введенные пользователем, и информирует модель и представление о необходимости соответствующей реакции.

Freja JavaScript Framework разработана на базе шаблона проектирования MVCВот, в принципе, и все. Остается добавить лишь о том (и это крайне важно), что и представление, и контроллер зависят от модели. В то же время сама модель не должна зависеть ни от представления, ни от контроллера. Таким образом, у разработчика появляется возможность строить модель без привязки к визуальному представлению. Отметим также, что впервые шаблон проектирования MVC был предложен для языка Smalltalk. На этом с MVC заканчиваем и переходим непосредственно к герою нашего сегодняшнего материала — Freja JavaScript Framework.

Общие сведения

Итак, как уже отмечалось чуть выше, Freja JavaScript Framework разработана на базе шаблона проектирования MVC. Каковы практические последствия? Как минимум, любопытны. Во-первых, в качестве модели используется XML-документ, предоставляемый сервером. Он может быть как статичным файлом, так и генерируемым динамически в результате выполнения скрипта на серверной стороне. Подключаем модель к приложению мы всего лишь одной строчкой.

var myModel = getModel('/path.to.model/model.name.xml');

Далее идет черед представления, которое в рамках Freja JavaScript Framework является обычным XSL-документом, лежащим на сервере, и подключается к приложению также одной-единственной строчкой.

var myView = getView('/path.to.view/view.name.xsl');

В качестве же контроллера в веб-приложениях, созданных с помощью Freja JavaScript Framework, выступает непосредственно наш JavaScript-код, который и управляет логикой программы и взаимодействием между представлением и моделью. Минимально необходимый для комплексной работы (представление данных из модели, обновление данных в модели и так далее) код состоит из трех простейших строк.

myView.render(myModel);
myModel.updateFrom(myView);
myModel.save();

Первая строчка рендерит данные из модели в представление. Вторая строчка берет данные, введенные или измененные пользователем в представлении, и с их помощью обновляет модель. Третья строчка, как нетрудно догадаться, сохраняет модель с уже обновленными из представления данными. Все очень просто даже для человека, минимально знакомого с технологиями, способами и методиками разработки веб-приложений. Если же говорить о преимуществах Freja JavaScript Framework по сравнению с другими аналогичными проектами, то здесь мы обратимся к словам разработчиков описываемого продукта, ибо они лучше всех остальных знают свое детище. Плюс несколько пунктов из других источников.

Список преимуществ Freja JavaScript Framework выглядит следующим образом:

  • Freja JavaScript Framework изначально проектировался и создавался для разработки single-screen веб-приложений;
  • высокий уровень гибкости и расширяемости как самой Freja JavaScript Framework, так и веб-приложений, созданных с ее помощью;
  • true MVC (этот момент мы уже рассмотрели со всех сторон);
  • полное разделение всего кода веб-приложения на серверную часть и клиентскую часть;
  • Freja JavaScript Framework полностью построена на основе открытых стандартов (XML, XSLT), что, в принципе, сегодня уже является обычным делом;
  • небольшой размер и минимум информации, которую придется изучить, прежде чем начать работать с Freja JavaScript Framework;
  • веб-приложения, разработанные на базе Freja JavaScript Framework, работают правильно во всех современных веб-браузерах: Internet Explorer, Firefox, Safari, Opera;
  • если требуется, то Freja JavaScript Framework отлично работает в комплексе с другими популярными JavaScript-библиотеками (Prototype, script.aculo.us, Dojo и так далее).

Отметим, что последний пункт в списке преимуществ Freja JavaScript Framework имеет достаточно большое значение для многих проектов. Для наглядности приведем простенький пример. Представим, что мы занимаемся разработкой комплексного современного веб-проекта, где нужно обеспечить не только асинхронное взаимодействие между сервером и клиентом, но и красивые визуальные эффекты и полноценный по сегодняшним меркам пользовательский интерфейс. Допустим, что схема работы с клиентом/сервером во Freja JavaScript Framework нас полностью устраивает, но для визуальных эффектов мы хотим использовать популярнейший на данный момент script,aculo.us. Никаких проблем — все будет работать без каких-либо функциональных ограничений и проблем.

Практика

Разумеется, наш обзор был бы неполным без рассказа об особенностях практического использования Freja JavaScript Framework. Перед тем как начать, заметим, что работать с этим продуктом действительно просто. Сама библиотека содержит минимальный набор функций и объектов (чем и объясняется ее малый размер), и все они прозрачны для разработчика. Иными словами, если человеку уже приходилось до момента знакомства с Freja JavaScript Framework работать с какими-то другими продуктами, то обучение вообще не займет никакого дополнительного времени.

Freja JavaScript Framework использует такие открытые стандарты, как XML и XSLTИтак, минимально необходимый набор файлов для веб-приложения, созданного на базе Freja JavaScript Framework, выглядит примерно следующим образом:

  • datamodel.xml — этот файл содержит данные для нашего веб-приложения (мы используем статичный XML-документ, но, как говорилось в самом начале, можно использовать и динамически создаваемый);
  • viewdisplay.xsl — этот файл содержит шаблон для представления данных пользователю;
  • controller.js — этот файл содержит JavaScript-код, который управляет логикой нашего веб-приложения (мы вынесли его в отдельный файл, но можно писать и в HTML-файле);
  • index.html — назначение этого файла, думаю, понятно всем: в нем все сводится воедино, и к нему обращается конечный пользователь нашего веб-приложения;
  • freja.js — этот файл содержит код Freja JavaScript Framework.

В рамках настоящего материала мы не будем давать содержимое файлов с данными и с шаблоном, ибо там, по большому счету, может быть что угодно (в рамках заявленных стандартов, разумеется). Поэтому сразу перейдем к index.html.

<html>
<head>
<title>Пример для Freja JavaScript Framework</title>
<script type='text/javascript' src='freja.js'></script>
<script type='text/javascript' src='controller.js'></script>
</head>
<body>
<div id='content'> </div>
</body>
</html>

Здесь мы подгрузили два JavaScript-файла (саму библиотеку и код контроллера), а также добавили один div, у которого атрибут id имеет значение сontent. Самая же важная часть нашего веб-приложения, как можно логично предположить, находится в файле controller.js.

var data = getModel('datamodel.xml');
var display = getView('viewdisplay.xsl');
display.render(data, "content");

Для того чтобы все было понятно, рассмотрим последовательно значение каждой строчки кода. Итак, в первой мы подгружаем данные с сервера. Во второй — опять же с сервера подгружаем шаблон для дальнейшего представления данных конечному пользователю. И, наконец, в третьей строчке мы осуществляем рендеринг данных с помощью шаблона в указанный div. Однако для большинства серьезных проектов подобного функционала вряд ли хватит, посему добавим в приложение немного интерактива: сделаем «переключатель» представления данных. Для этих целей вначале чуть изменим index.html, добавив под наш единственный div две ссылки, отвечающие за разные виды представления данных.

<body>
<div id='content'> </div>
<a href='#' id='editLink'>edit</a>
<a href='#' id='displayLink'>display</a>
</body>

Затем перепишем controller.js.

var data = getModel('datamodel.xml');
var display = getView('viewdisplay.xsl');
var edit = getView('viewedit.xsl');
display.render(data, "content");

document.getElementById('editLink').onclick = function() { edit.render(data, "content"); };
document.getElementById('displayLink').onclick = function() { display.render(data, "content"); };

Freja JavaScript Framework пока не очень популярнаИ снова ничего сложного. Во-первых, мы добавили еще один view из шаблона на сервере под названием viewedit.xsl. А затем присвоили каждой ссылке-"переключателю" по функции, каждая из которых производит рендеринг данных с помощью соответствующего (указанного нами в коде) представления.

В заключение же материала остается добавить лишь пару слов о применимости Freja JavaScript Framework. С одной стороны, этот продукт выглядит гораздо менее комплексно, чем многие его конкуренты. Но, с другой, он достаточно просто и прозрачно решает поставленную перед ним задачу, и наверняка найдутся такие проекты, где его использование будет действительно оправданно и эффективно.



Статья получена: hostinfo.ru

загрузка...

 

 

Наверх


Постоянная ссылка на статью "Freja&nb p;&mda h; модель, представление, контроллер":


Рассказать другу

Оценка: 4.0 (голосов: 16)

Ваша оценка:

Ваш комментарий

Имя:
Сообщение:
Защитный код: включите графику
 
 



Поиск по базе статей:





Темы статей






Новые статьи

Противовирусные препараты: за и против Добро пожаловать в Армению. Знакомство с Арменией Крыша из сэндвич панелей для индивидуального строительства Возможно ли отменить договор купли-продажи квартиры, если он был уже подписан Как выбрать блеск для губ Чего боятся мужчины Как побороть страх перед неизвестностью Газон на участке своими руками Как правильно стирать шторы Как просто бросить курить

Вместе с этой статьей обычно читают:

GM и АВТОВАЗ разработают новую модель

• Возможно, новая большая Lada будет выглядеть примерно такGeneral Motors и АВТОВАЗ в будущем могут начать работы по совместному проектированию принципиально нового автомобиля, который российский автогигант начнет выпускать через 4-5 лет. По некоторым данным, это будет модель «D» класса по европейской классификации, а в ее основу может лечь платформа от Opel Vectra. Надо отметить, что сейчас ни один российский завод не выпускает автомобиль класса «D» (к нему относится Opel ...

» Американскии автомобили - 9460 - читать


Mazda готовит замену для модели 626

Mazda готовится в середине 2002 года представить принципиально новое поколение автомобиля 626. Пока еще неизвестно какое название получит автомобиль – есть варианты, что вместо цифровых обозначений Mazda начнет использовать имена. Новый автомобиль будет выпускаться в трех вариантах кузова - четырехдверный седан, пятидверный хэтчбек и универсал.

» Японские автомобили - 2379 - читать


Nissan Qashqai меняет представление о семейных автомобилях

С каждым годом конкуренция в классе «С» становится все более острой, а производители ищут всевозможные способы, чтобы заинтересовать покупателя чем-то особенным. Одним из самых ярких и необычных представителей этого класса можно назвать Nissan Qashqai. С технической точки зрения новинка представляет собой обычной автомобиль С-класса с несколько большим по сравнению с конкурентами дорожным просветом, зато внешне Nissan Qashqai – компактный кроссовер, с массивной передней час ...

» Японские автомобили - 3099 - читать


Nissan Z перевернет представление о спортивных купе

Представители Nissan заявили, что новое купе Z, которое начнет выпускаться в 2003 году будет представлять из себя «Porsche 911 по цене Audi TT». • Nissan ZNissan Z представляет собой классический образец спортивного купе нового поколения, который выполнен в стиле автомобилей 60-70 годов (прообразом для Nissan Z послужил автомобиль Datsun 240Z 1969 модельного года). Как и Datsun 240Z новый Nissan Z сохранил основные черты этого автомобиля – переднее расположение двигателя, пр ...

» Японские автомобили - 3152 - читать


Ralliart - новый флагман модельного ряда Galant

Североамериканское отделение Mitsubishi Motors представило на автошоу в Чикаго заряженную версию Mitsubishi Galant Ralliart, который возглавит линейку нового поколения Galant. Получивший к названию приставку «Ralliart», авто будет самым мощным серийно производимым Galant за всю историю компании. И это немудрено, ведь под капотом у него скрывается 3,8-литровый двигатель V6 мощностью 258 л.с. от спортивного купе Eclipse GT.

» Японские автомобили - 9537 - читать



Статья на тему Интернет » Интересное в сети » Freja&nb p;&mda h; модель, представление, контроллер

Все статьи | Разделы | Поиск | Добавить статью | Контакты

© Art.Thelib.Ru, 2006-2024, при копировании материалов, прямая индексируемая ссылка на сайт обязательна.

Энциклопедия Art.Thelib.Ru