---
title: "Цепочка вызовов"
type: "code-smell"
slug: "message-chains"
url: "http://localhost:3000/ru/smells/message-chains.md"
category: "Опутыватели связями"
description: "Вы видите в коде цепочки вызовов вроде такой $a->b()->c()->d()"
---
# Цепочка вызовов

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

## Signs and Symptoms

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

## Reasons for the Problem

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

## Payoff

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

**Treated by**

- [Сокрытие делегирования](/ru/hide-delegate.md)
- [Извлечение метода](/ru/extract-method.md)
- [Перемещение метода](/ru/move-method.md)

