Логотип ConstructiCat
CodeBust.
Навигация по разделу ▾

Посредник.

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

##Признаки и симптомы

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

class Department {
  Person manager;
  String managerName() { return manager.name(); }
  String managerPhone() { return manager.phone(); }
}

##Причины проблемы

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

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

##Лечение

##Результат

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