Схема MVC в Ruby on Rails

MVC является схемой-паттерном для создания гибких и легко расширяемых приложений с пользовательским интерфейсом. Эта схема была разработана создателями Smalltalk-80 ещё 25 лет назад, однако остаётся чрезвычайно актуальной и по сей день.

Суть схемы MVC в разделении трёх основных элементов любого приложения с пользовательским интерфейсом:

* Model — Модель — Бизнес модель или объект предметной области
* View — Представление — Элементы пользовательского интерфейса
* Controller — Контроллер — Отслеживание событий пользовательского интерфейса

Такое разделение очень положительно влияет на качество получаемого кода. В разы уменьшается количество зависимостей между различными его частями. Схема позволяет избежать зависимости модели от интерфейса, улучшая возможность к повторному использованию кода. Значительно уменьшается опасность повредить бизнес-модель в процессе изменения интерфейса. Ruby on Rails является одной из наиболее точных Web-реализаций паттерна MVC.

В Rails в качестве реализации Модели выступает класс ORM ActiveRecord. Благодаря динамической природе Ruby ActiveRecord позволяет работать с таблицами базы данных без какой-либо предварительной конфигурации, так как схема полей таблицы получается “на лету.”

За представление отвечает пакет ActionView, в который входит поддержка генерации HTML и XML из различных типов шаблонов. ActionView предоставляет удобные средства вложения шаблонов и выделения общей разметки в отдельные файлы для избежания повторов.

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

04 января 2007 в 20:23
Материалы по теме
{"url":"http://www.fastvps.ru/", "src":"/images/advbanners/fastvps.png", "alt":"Хостинг Fastvps.ru. Наш выбор!"}
Заработок