Skip to main content

Коли Mediator призводить до ускладнення архітектури?

Патерн Mediator (Посередник) починає ускладнювати архітектуру, коли кількість взаємодій і логіки, переданих йому, перевищує розумну межу - тобто коли він перетворюється не на координатора, а на центральний мозок системи, від якого залежить усе.


1. Коли посередник керує надто багатьма компонентами

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

Приклад: GUI-форма з 15 елементами, де Mediator керує всіма ними: полями, кнопками, списками, діалогами - сотні умов if і розгалужень.


2. Коли Mediator бере на себе бізнес-логіку

Посередник повинен керувати взаємодією, а не самою поведінкою компонентів. Якщо через нього починають реалізовувати бізнес-правила ("якщо статус замовлення X - оновити склад і повідомити користувача"), він перетворюється на монолітний шар логіки, який складно тестувати і розширювати.

Ознака: Mediator знає "занадто багато" про внутрішній устрій усіх учасників.


3. Коли всі зміни вимагають модифікації посередника

Якщо при додаванні нового компонента, поля чи кнопки доводиться переписувати Mediator - це означає, що він став вузьким місцем архітектури і порушує принцип відкритості/закритості (OCP).

Зрештою Mediator стає точкою крихкості: одна зміна ламає кілька сценаріїв.


4. Коли взаємодії стають неявними

У системах з великими Mediator-об'єктами поведінка компонентів стає "магічною" - важко зрозуміти, хто кого повідомляє і чому. Щоб відстежити ланцюжок викликів, доводиться перегортати сотні рядків посередника.

Це знижує читабельність і робить налагодження виснажливим.


5. Коли посередників стає занадто багато

У великих системах часто з'являється декілька Mediator'ів (на рівні UI, домену, інфраструктури). Якщо вони починають залежати один від одного, архітектура перетворюється на шаруватий клубок посередників, де логіка дублюється і плутається.


Ознаки, що Mediator став шкідливим

  • Великий клас із сотнями рядків і десятками if/else.
  • Залежності на всі компоненти системи.
  • Складно тестувати чи додати нову взаємодію.
  • Компоненти перестали бути переоснащуваними без свого посередника.

Висновок

Патерн Mediator ускладнює архітектуру, коли:

  • у ньому концентрується забагато логіки і зв'язків,
  • він починає порушувати принципи SRP і OCP,
  • і замість координатора перетворюється на диригента всього застосунку.

Підсумок:

Mediator корисний, поки залишається "розпорядником". Щойно він стає "володарем усіх взаємодій" - архітектура втрачає гнучкість і прозорість.

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

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

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