Які обов'язки в 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
Користувач → Controller → Model → View → Користувач- Controller: керує процесом.
- Model: виконує бізнес-логіку та роботу з даними.
- View: показує результат.
Головний принцип:
Кожен компонент відповідає лише за свою задачу. Контролер керує, модель знає, як працювати, а представлення - як показати.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.