Skip to main content

Які мінуси у Mediator?

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


1. Посередник може стати "божественним об'єктом"

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

Зрештою Mediator перетворюється на "монолітний контролер", де зміни однієї частини впливають на все інше.


2. Складність розуміння і супроводу логіки

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

Це знижує читабельність, особливо при великій кількості подій і станів.


3. Проблеми з масштабованістю

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


4. Ризик надмірної централізації

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


5. Зниження продуктивності (у деяких сценаріях)

Якщо посередник обробляє велику кількість подій чи сповіщень, може виникнути зайва прошарок викликів і тимчасові накладні витрати.


Висновок

МінусСуть
"Божественний об'єкт"Посередник стає перевантаженим логікою
Втрата прозоростіВажко зрозуміти, хто викликає кого
Порушення OCPБудь-яка нова взаємодія вимагає зміни Mediator
Надмірна централізаціяУсі залежать від одного посередника
Можливі накладні витратиДодаткові кроки при передачі повідомлень

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

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

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

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