Посредник
Также известен как: Middle Man
Симптомы и признаки
Если класс выполняет одно действие — делегирует работу другому классу — стоит задуматься, зачем он вообще существует.
Причины появления
Данный запах может быть результатом фанатичной борьбы с цепочками вызовов.
Кроме того, бывает так, что вся полезная нагрузка класса постепенно перемещается в другие классы, в результате кроме делегирующих методов в нем ничего не остается.
Лечение
- Если большую часть методов класс делегирует другому классу, нужно воспользоваться удалением посредника.
Выигрыш
- Уменьшение размера кода.
Не стоит трогать, если...
Не удаляйте посредников, которые были созданы осознанно:
-
Посредник мог быть введён для избавления от нежелательной зависимости между классами.
-
Некоторые паттерны проектирования намеренно создают посредников (например, Заместитель или Декоратор).