Архитектура MVC
Технологии Сентябрь 6th. 2007, 9:13дпПосле непродолжительного изучения определил для себя суть архитектуры Model-View-Controller. Тенденция здесь такая же, как и при вёрстке в XML, т.е. отделение данных (model) от представления (view). И поскольку MVC применяется для интерактивных приложений, добавляется ещё один элемент – контроллер (controller), который обрабатывает данные от пользователя и инициирует реакцию модели и представления.
Модель, представление и контроллер выделяются в отдельные классы, что в дальнейшем упрощает внесение в них изменений. Например, в случае изменения отображения данных нужно изменять только класс представления, а модель и контроллер остаются такими же.
Вот, пожалуй, наиболее удачное из найденных мною, объяснений сущности MVC:
——————————————-
Модель (Model)
Модель представляет собой данные, с которыми оперирует приложение. Это могут быть как данные базы данных, так и любая другая структура данных описывающая некоторые объекты системы и их состояние.
Вид (View)
Вид представляет собой компонент системы для отображения состояния модели в понятном человеку представлении. Это могут быть диалоги, формы и другие визуальные и не визуальные (например, синтезатор речи) средства взаимодействия человека с системой. Вид не изменяет данные напрямую (режим только чтение), данные изменяются при помощи контроллера.
Контроллер (Controller)
Контроллер является средством, при помощи которого пользователи взаимодействуют с системой. Это может быть клавиатура, манипулятор мышь и т. д. А также является управляющим элементом для обмена данными и сообщениями между видом и моделью.
Фактически, связка вида и контроллера является интерфейсом пользователя. Причем, если компоненты вида обычно можно повторно использовать в других компонентах системы, то контроллер часто является специфичным для данного конкретного случая
Модель не зависит ни от вида, ни от контроллера, что позволяет одновременно строить различные интерфейсы пользователя для взаимодействия с одной и той же моделью данных.
——————————————-
В nSite CMS в данный момент выделяются три типа представлений:
- Списки объектов
- Редактирование свойств объекта
- Сервисные функции (настройки системы, рассылка и т.п.)
Вот эти представления мы и будем проектировать по архитектуре MVC.
Для понимания архитектуры были использованы следующие источники: