Friend spotlight!
Whimsical Animations course
Friend spotlight!
NEW Whimsical Animations course
Friend spotlight! NEW Whimsical Animations course
huge discount only this week
Friend spotlight! Want to make your project stand out? NEW Whimsical Animations course huge discount only this week

Посредник

Также известен как: Middle Man

Симптомы и признаки

Если класс выполняет одно действие — делегирует работу другому классу — стоит задуматься, зачем он вообще существует.

Причины появления

Данный запах может быть результатом фанатичной борьбы с цепочками вызовов.

Кроме того, бывает так, что вся полезная нагрузка класса постепенно перемещается в другие классы, в результате кроме делегирующих методов в нем ничего не остается.

Лечение

  • Если большую часть методов класс делегирует другому классу, нужно воспользоваться удалением посредника.

Выигрыш

  • Уменьшение размера кода.

Не стоит трогать, если...

Не удаляйте посредников, которые были созданы осознанно:

  • Посредник мог быть введён для избавления от нежелательной зависимости между классами.

  • Некоторые паттерны проектирования намеренно создают посредников (например, Заместитель или Декоратор).