Модель-вид-контролер

Матеріал з Вікіпедії — вільної енциклопедії.

Перейти до: навігація, пошук
Діаграма взаємодії між компонентами шаблону

Моде́ль-вид-контро́лер (англ. Model-view-controller, MVC) — архітектурний шаблон, який використовується при проектуванні та розробці програмного забезпечення.

Даний шаблон розділяє систему на три частини: модель даних, вигляд даних та керування. Застосовується для відділення даних (модель) від інтерфейсу користувача (вигляду) так, щоб зміни інтерфейсу користувача мінімально впливали на роботу з даними, а зміни в моделі даних могли проводитися без зміни інтерфейсу користувача.

Мета шаблону — гнучкий дизайн програмного забезпечення, який повинен полегшувати подальші зміни чи розширення програм, а також надавати можливість повторного використання окремих компонент програми. Крім того використання даного шаблону в великих системах приводить їх до певної впорядкованої структури і робить зрозумілішими завдяки зменшенню їх складності.

Зміст

[ред.] Компоненти

Архітектурний шаблон Модель-Вид-Контролер (MVC) ділить програму на три частини. У тріаді до обов'язків компоненту Модель (Model) входить зберігання даних і забезпечення інтерфейсу до них. Вигляд (View) відповідальний за представлення цих даних користувачеві. Контролер (Controller) керує компонентами, отримуючи сигнали у вигляді реакції на дії користувача, і повідомляючи про зміни модель компоненту. Така внутрішня структура в цілому розбиває систему на самостійні частини і розподіляє відповідальність на різні компоненти.

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

Зареєстровані події транслюються в різні запити, що направляються компонентам Моделі або об'єктам, відповідальним за відображення даних. Розділення моделі від представлення даних дозволяє незалежно використовувати різні компоненти для відображення інформації. Таким чином, якщо користувач через Контролер внесе зміни в Модель даних, то інформація, представлена одним або декількома візуальними компонентами, буде автоматично відкоректована відповідно до змін, що відбулися.

[ред.] Приклад

[ред.] Реалізації

Концепція MVC вперше застосувалася при проектуванні мови програмування Smalltalk як модель для інтерфейсу користувача [1] [2]. Також в область застосування концепції входить реалізація каркаса Документ-Вид (Document-View) в рамках бібліотеки MFC[3] для мови Visual C++ [4]. У сучасних технологіях концепція MVC представлена схемою JSP Model 1/2 для динамічної обробки Web-змісту на основі Java Server Pages (JSP)[5].

[ред.] Java

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

[ред.] ASP.NET

2009 року Microsoft випустив каркас ASP.NET MVC з відкритими кодами.

[ред.] Джерела

[ред.] Виноски

  1. LaLonde, W.R. and J.R. Pugh, Inside Smalltalk, Volume II, Prentice-Hall, 1991.
  2. Krasner, G.E. and S.T. Pope, A cookbook for using the Model-View-Controller user interface paradigm in Smalltalk-80, Journal of Object-Oriented Programming, 1(3), pp. 26-49, August/September 1988, SIGS Publications, New York, NY, USA, 1988.
  3. MFC Microsoft Foundation Classes - Бібліотека базових класів Microsoft. Бібліотека класів мови C++, призначена для розробки застосунків для Windows
  4. Kruglinski, D., Inside Visual C++, Microsoft Press, 1995.
  5. JSP (Java Server Pages) - Серверні сторінки Java. Технологія створення динамічних Web-сторінок з використанням Java.


Програмне забезпечення Це незавершена стаття про програмне забезпечення.
Ви можете допомогти проекту, виправивши або дописавши її.
Особисті інструменти