Обзор темы [Рефакторинг кода]

Цепочки вызовов (Message Chains)

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

Выход – Скрывание делегирующего класса. Применить этот рефакторинг можно к различным частям цепи. В принципе, можно применить и ко всем звеньям, но тогда все объекты в цепи станут промежуточными серверами. Зачастую лучшим выходом является рассмотрение, для чего используется результирующий объект. Может быть, имеет смысл использовать Извлечение метода, чтобы выделить эту функциональность, а затем применить Перемещение метода для передвижения получившегося метода назад по цепи.