Skip to main content

Які обов'язки в Model, View і Controller?

У патерні MVC (Model-View-Controller) кожна частина системи має чітко визначені обов'язки, щоб застосунок залишався зрозумілим, гнучким і керованим.


1. Model (Модель) - дані та логіка застосунку

Обов'язки:

  • Зберігає й керує даними (наприклад, користувачі, замовлення, товари).
  • Реалізує бізнес-правила та поведінку системи.
  • Обробляє запити від контролера: «зберегти», «змінити», «знайти».
  • Повідомляє представлення про зміни даних (у деяких реалізаціях).

Приклад: Клас User з методами register(), login(), change_password() і таблицею users у базі даних.


2. View (Представлення) - відображення даних користувачу

Обов'язки:

  • Отримує дані з моделі (через контролер).
  • Формує інтерфейс (HTML, JSON, вікно застосунку, графічний елемент).
  • Відображає результат дій користувача.
  • Не містить логіки обробки чи зберігання даних - лише візуалізацію.

Приклад: HTML-шаблон профілю користувача, сторінка кошика, звіт у PDF, компонент React.


3. Controller (Контролер) - сполучна ланка та керувальна логіка

Обов'язки:

  • Приймає дії користувача (запит, клік, ввід форми).
  • Звертається до моделі, щоб виконати потрібну дію.
  • Передає дані у представлення для відображення.
  • Визначає, яке представлення використати для відповіді.

Приклад: Метод UserController.show(id) отримує користувача з UserModel і передає його в шаблон profile.html.


Підсумкова структура роботи:

javascript
Користувач → ControllerModelView → Користувач
  • Controller: керує процесом.
  • Model: виконує бізнес-логіку та роботу з даними.
  • View: показує результат.

Головний принцип:

Кожен компонент відповідає лише за свою задачу. Контролер керує, модель знає, як працювати, а представлення - як показати.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.