Що таке mvc і для чого він потрібен
Що таке MVC і для чого він потрібен?
1 Що таке MVC?
Model-view-controller (MVC, «модель-вид-контролер») - схема використання декількох шаблонів проектування, за допомогою яких модель даних програми, призначений для користувача інтерфейс і взаємодія з користувачем розділені на три окремих компонента. Таким чином, щоб модифікація одного з компонентів надавала мінімальний вплив на інші. Дана схема проектування часто використовується для побудови архітектурного каркаса, коли переходять від теорії до реалізації в конкретній предметній області.
2 Model (Модель)
3 View (Вид)
Вид забезпечує різні способи представлення даних, які отримані з моделі. Він може бути шаблоном, який заповнюється даними. Може бути кілька різних видів, і контролер вибирає, який підходить якнайкраще для поточної ситуації.
Веб додаток зазвичай складається з набору контролерів, моделей і видів. Контролер може бути влаштований як основний, який отримує всі запити і викликає інші контролери для виконання дій в залежності від ситуації.
4 Controller (Контролер)
До завдань Контролера входить реакція на зовнішні подразники і зміна Моделі і / або Подання відповідно до закладеної в нього логікою. Один Контролер може працювати з декількома Уявленнями, в залежності від ситуації, взаємодіючи з ними через якийсь заздалегідь відомий інтерфейс, який ці Уявлення реалізують. Важливий нюанс, в класичній версії MVC Контролер не займається передачею даних з Моделі в Представлення і не є медіатором (Mediator) між Моделлю і Уявленнями.
5 Призначення
Основна мета застосування цієї концепції полягає в поділі бізнес-логіки (моделі) від її візуалізації (уявлення, виду). За рахунок такого поділу підвищується можливість повторного використання. Найбільш корисне застосування даної концепції в тих випадках, коли користувач повинен бачити ті ж самі дані одночасно в різних контекстах і / або з різних точок зору. Зокрема, виконуються наступні завдання:
- До однієї моделі можна приєднати кілька видів, при цьому не зачіпаючи реалізацію моделі. Наприклад, деякі дані можуть бути одночасно представлені у вигляді електронної таблиці, гістограми і кругової діаграми.
- Не торкаючись реалізацію видів, можна змінити реакції на дії користувача (натискання мишею на кнопці, введення даних), для цього досить використовувати інший контролер.
- Ряд розробників спеціалізується тільки в одній з областей: або розробляють графічний інтерфейс, або розробляють бізнес-логіку. Тому можливо добитися того, що програмісти, які займаються розробкою бізнес-логіки (моделі), взагалі не будуть обізнані про те, яке уявлення буде використовуватися.