Autumn SALE

Цепочка вызовов

Также известен как: Message Chains

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

Вы видите в коде цепочки вызовов вроде такой $a->b()->c()->d()

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

Цепочка вызовов появляется тогда, когда клиент запрашивает у одного объекта другой, в свою очередь этот объект запрашивает ещё один и т. д. Такие последовательности вызовов означают, что клиент связан с навигацией по структуре классов. Любые изменения промежуточных связей означают необходимость модификации клиента.

Лечение

Выигрыш

  • Может уменьшить связность между классами цепочки.

  • Может уменьшить размер кода.

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

  • Если вы перестараетесь в процессе сокрытия делегирования, в коде будет довольно сложно понять, где именно осуществляется конкретная работа. Другими словами, появится запах Посредник.