ь частіше використовується в структурному програмуванні, так як в цьому випадку модель являє просто структуру даних, без методів їх обробних.
2. Активна модель - модель оповіщає уявлення про те, що в ній відбулися зміни, а уявлення, які зацікавлені в оповіщенні, підписуються на ці повідомлення. Це дозволяє зберегти незалежність моделі як від контролера, так і від уявлення.
Класичною реалізацією концепції MVC прийнято вважати версію саме з активною моделлю [4].
З розвитком об'єктно-орієнтованого програмування і поняття про шаблони проектування був створений ряд модифікацій концепції MVC, які при реалізації у різних авторів можуть відрізнятися від оригінальної. Так, наприклад, Еріан Верми в 2004 році описав приклад узагальненого MVC.
Основна мета застосування цієї концепції полягає в поділі бізнес-логіки (моделі) від її візуалізації (уявлення, виду). За рахунок такого поділу підвищується можливість повторного використання. Найбільш корисно застосування даної концепції в тих випадках, коли користувач повинен бачити ті ж самі дані одночасно в різних контекстах та/або з різних точок зору. Зокрема, виконуються наступні завдання:
1. До однієї моделі можна приєднати кілька видів, при цьому не зачіпаючи реалізацію моделі. Наприклад, деякі дані можуть бути одночасно представлені у вигляді електронної таблиці, гістограми і кругової діаграми.
2. Не торкаючись реалізацію видів, можна змінити реакції на дії користувача (натискання мишею на кнопці, введення даних), для цього досить використовувати інший контролер.
. Ряд розробників спеціалізується тільки в одній з областей: або розробляють графічний інтерфейс, або розробляють бізнес-логіку. Тому можливо домогтися того, що програмісти, що займаються розробкою бізнес-логіки (моделі), взагалі не будуть інформовані про те, яке уявлення використовуватиметься [4].
Концепція MVC дозволяє розділити дані, подання та обробку дій користувача на три окремих компоненти:
· Модель (англ. Model). Модель надає знання: дані і методи роботи з цими даними, реагує на запити, змінюючи свій стан. Не містить інформації, як ці знання можна візуалізувати.
· Подання, вид (англ. View). Відповідає за відображення інформації (візуалізацію). Часто як уявлення виступає форма (вікно) з графічними елементами.
· Контролер (англ. Controller). Забезпечує зв'язок між користувачем і системою: контролює введення даних користувачем і використовує модель та подання для реалізації необхідної реакції.
Важливо відзначити, що як уявлення, так і контролер залежать від моделі. Однак модель не залежить ні від уявлення, ні від контролера. Тим самим досягається призначення такого поділу: воно дозволяє будувати модель незалежно від візуального представлення, а також створювати кілька різних подань для однієї моделі.
Для реалізації схеми Model-View-Controller використовується досить велика число шаблонів проектування (залежно від складності архітектурного рішення), основні з яких спостерігач raquo ;, стратегія raquo ;, компонувальник [4] [7].
Найбільш типова реалізація відокремлює вид від моделі шляхом встановлення між ними протоколу взаємодії, використовуючи апарат подій (підписка/сповіщення). При кожній зміні внутрішніх даних в моделі вона оповіщає всіх залежних від неї уявлення, і уявлення оновлюється. Для цього використовується шаблон спостерігач raquo ;. При обробці реакції користувача вид вибирає, залежно від потрібної реакції, потрібний контролер, який забезпечить ту чи іншу зв'язок з моделлю. Для цього використовується шаблон стратегія raquo ;, або замість цього може бути модифікація з використанням шаблону команда raquo ;. А для можливості однотипного поводження з подоб'екти складно-складеного ієрархічного виду може використовуватися шаблон компонувальник raquo ;. Крім того, можуть використовуватися й інші шаблони проектування, наприклад, фабричний метод raquo ;, який дозволить задати за замовчуванням тип контролера для відповідного виду.
. 1.5 JSON
JSON (англ. JavaScript Object Notation) - текстовий формат обміну даними, заснований на JavaScript і зазвичай використовуваний саме з цією мовою. Як і багато інших текстові формати, JSON легко читається людьми.
Незважаючи на походження від JavaScript, формат вважається язиконезавісімим і може використовуватися практично з будь-якою мовою програмування. Для багатьох мов існує готовий код для створення та обробки даних у форматі JSON.
За рахунок своєї лаконічності в порівнянні з XML, формат JSON може бути більш підходящим для серіалізациі складних структур....