Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РОЗДІЛ 6111.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
186.37 Кб
Скачать

6.1.9 Модель-подання-контролера (Model View Controller)

Типове рішення модель-подання-контролера має на увазі виділення трьох окремих ролей. Модель - це об'єкт, що дає деяку інформацію про домен. У моделі немає візуального інтерфейсу, вона містить у собі всі дані і поведінку, не пов'язані з призначеним для користувача інтерфейсом. В об'єктно-орієнтованому контексті найбільш "чистою" формою моделі є об'єкт моделі предметної області. В якості моделі можна розглядати і сценарій транзакції, якщо він не містить в собі ніякої логіки, пов'язаної з призначеним для користувача інтерфейсом. Подібне визначення не дуже розширює поняття моделі, однак повністю відповідає розподілу ролей у розглянутому типовому рішенні.

Представлення відображає вміст моделі засобами графічного інтерфейсу. Таким чином, якщо модель - це об'єкт покупця, відповідне подання може бути фреймом з купою елементів управління або HTML-сторінкою, заповненою інформацією про покупця. Функції подання полягають тільки у відображенні інформації на екрані. Всі зміни інформації обробляються третім "учасником" системи - контролером. Контролер одержує вхідні дані від користувача, виконує операції над моделлю і вказує подання на необхідність відповідного оновлення. У цьому плані графічний інтерфейс можна розглядати як сукупність подання та контролера.

Говорячи про типове рішення модель-подання-контролер, не можна не підкреслити два основні типи поділу: відділення подання від моделі та відділення контролера від подання.

Відділення подання від моделі - це один з фундаментальних принципів проектування програмного забезпечення. Наявність такого поділу дуже важливо з ряду причин:

- Представлення і модель відносяться до абсолютно різних сфер програмування.

- Користувачі хочуть, щоб, залежно від ситуації, одна і та ж інформація могла бути відображена різними способами.

- Об'єкти, що не мають візуального інтерфейсу, набагато легше тестувати, ніж об'єкти з інтерфейсом.

Ключовим моментом у відділенні подання від моделі є спрямування залежностей: представлення залежить від моделі, але модель не залежить від подання. Це означає, що зміна уявлення не вимагає зміни моделі.

Відділення контролера від подання. Класичним прикладом необхідності такого поділу є підтримка редагованої і не редагованої поведінки. Цього можна досягти за наявності одного подання і двох контролерів (для двох варіантів використання), де контролери є стратегіями, використовуваними поданням. Тим часом на практиці в більшості систем кожному поданню відповідає тільки один контролер, тому поділ між ними не проводиться. Про це рішення згадали тільки з появою Web-інтерфейсів, де відділення контролера від подання виявилося надзвичайно корисним.

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