Autumn SALE

Посредник

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

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

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

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

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

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

Лечение

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

Выигрыш

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

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

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

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

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