16.3. Шаблон проектирования Модель-Представление-Контроллер
В этом параграфе рассматривается шаблон проектирования Модель-Представление-Контроллер (Model-View-Controller, MVC), который используется при проектировании многослойных приложений с пользовательским интерфейсом (обычно графическим).
В архитектуре MVC выделяются три слоя и разграничиваются их полномочия следующим образом:
-
Модель — данные и бизнес-логика приложения (слой модели или слой сервисов).
-
Представление — визуальное представление приложения (в случае веб-приложения, HTML-страницы), включая вспомогательные классы и файлы, используемые для отображения модели в некотором конкретном виде. Приложение может поддерживать несколько представлений, например: стандартный пользовательский интерфейс, упрощенный пользовательский интерфейс, XML-представление и др.
-
Контроллер — интерпретирует и обрабатывает запросы, приходящие от представления, инициирует необходимые изменения модели и передает управление подходящему представлению.
Шаблон постулирует, что модель, представление и контроллер — это отдельные компоненты, причем модель не должна зависеть ни от контроллера, ни от представления.
На приведенной схеме стрелками обозначены зависимости одного компонента шаблона от другого:
Главное в шаблоне Модель-Представление-Контроллер:
-
независимость модели от контроллера и представления;
-
отделение представления от контроллера.
Разработка модели ведется с учетом того, какие данные, алгоритмы или расчеты должны поддерживаться приложением. Разработка контроллера и представления направлены на организацию взаимодействия с пользователем (клиентом) и главной целью ставится удобство интерфейса.
Благодаря такому разделению возможно 1) поддерживать несколько представлений для одной модели; 2) не засорять модель интерфейсным кодом, не соответсвующим ее сущности; 3) оставить в коде представления только презентационную логику.
- Раздел 16. Многоуровневые и многослойные приложения. Шаблон проектирования Модель-Представление-Контроллер
- 16.1. Многоуровневые приложения
- 16.2. Многослойные приложения
- 16.3. Шаблон проектирования Модель-Представление-Контроллер
- 16.4. Реализация шаблона Модель-Представление-Контроллер в веб-приложениях
- Раздел 17. Базы данных в веб-приложениях
- 17.1. Основные понятия баз данных
- 17.2. Системы управления базами данных
- 17.3. Язык запросов sql
- Транзакции
- 17.4. Доступ к базам данных из Java
- Пример: база данных студентов
- Поддержка транзакций
- 17.5. Объектно-реляционная проекция
- Лекция 18. Безопасность Интернет-приложений
- 18.1. Аутентификация и авторизация
- 18.2. Понятие безопасности Интернет-приложений
- 18.3. Классы атак сетевого уровня Сниффинг пакетов
- Подмена ip-адреса
- Отказ в обслуживании
- Сетевая разведка
- 18.4. Криптографические технологии
- 18.5. Уязвимости уровня приложений
- Уязвимости системы аутентификации
- Уязвимости системы авторизации
- Атаки на стороне клиента
- Выполнение кода на сервере
- Разглашение информации
- Злоупотребление функциональными возможностями
- Наиболее распространенные уязвимости
- 18.6. Резюме