---
title: "Mediator - координація взаємодії"
url: https://laravelukraine.com/blog/mediator-koordinaciia-vzajemodiyi
author: "Олексій Бабінцев"
date: 2026-07-20
---

# Mediator - координація взаємодії

Mediator знімає прямі залежності між об'єктами: замість того щоб знати один одного, компоненти спілкуються через посередника.

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

Коли багато об'єктів взаємодіють напряму, кількість зв'язків зростає квадратично, а логіка взаємодії розповзається між ними. Змінити сценарій означає правити кілька класів одразу.

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

Уся координація переїжджає в медіатор. Компоненти знають лише про нього, а він викликає їх у потрібному порядку. Логіка взаємодії зосереджена в одному місці.

У прикладній архітектурі Mediator часто виглядає як orchestrator або application service, що координує кілька підсистем без прямої зв'язаності між ними.

```php
class CheckoutMediator
{
  public function __construct(
    private InventoryService $inventory,
    private PaymentService $payment,
    private EmailService $email,
  ) {}

  public function placeOrder(Order $order): void
  {
    $this->inventory->reserve($order);
    $this->payment->charge($order);
    $this->email->sendConfirmation($order);
  }
}

$mediator = app(CheckoutMediator::class);
$mediator->placeOrder($order);
```

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

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

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

- **+** Зменшує кількість зв'язків між компонентами.
- **+** Логіка взаємодії централізована й видима в одному місці.
- **−** Медіатор сам може розростися в God Object, якщо тягне забагато логіки.
- **−** Для двох-трьох об'єктів із простою взаємодією посередник зайвий.
