---
title: "MVC / MVP / MVVM - архітектурні підходи"
url: https://laravelukraine.com/blog/mvc-mvp-mvvm-arxitekturni-pidxodi
date: 2026-08-20
---

# MVC / MVP / MVVM - архітектурні підходи

MVC, MVP і MVVM - споріднені архітектурні підходи, що відділяють дані від їх представлення через проміжний шар.

### Яку проблему вирішує

Коли дані, логіка їх підготовки й відображення змішані в одному місці, код важко тестувати й підтримувати: зміна верстки зачіпає бізнес-логіку і навпаки.

### Як вирішує

Відповідальності розносять на три ролі, але посередник між моделлю і view відрізняється:

- **MVC** - контролер керує потоком, модель містить дані, view показує.
- **MVP** - presenter готує дані для view і керує логікою UI.
- **MVVM** - viewmodel тримає стан і робить його придатним для UI (зручно для двостороннього зв'язування).

У Laravel базовою архітектурою є MVC.

```php
class ProfileController
{
  public function show(int $id): array
  {
    $user = User::findOrFail($id);
    return ['user' => $user];
  }
}
```

### Де застосовувати

- MVC - типові вебзастосунки із серверним рендерингом (як у Laravel).
- MVP/MVVM - інтерфейси з насиченою клієнтською логікою та зв'язуванням стану.

### Плюси та мінуси

- **+** Чіткий розподіл відповідальностей спрощує підтримку й тести.
- **+** Представлення можна змінювати окремо від даних.
- **−** Для крихітних застосунків поділ на шари - надмірність.
- **−** Межі ролей розмиваються: логіка легко "протікає" в контролер чи view, якщо за цим не стежити.
