Глянь мой новый курс по Git! Привет! Глянь мой новый курс по Git! Привет! Глянь мой новый курс по Git на GitByBit.com! Привет! Хочешь круто подтянуть Git? Глянь мой новый курс на GitByBit.com!

Посредник

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

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

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

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

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

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

Лечение

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

Выигрыш

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

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

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

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

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