---
title: "Cadeias de Mensagens"
type: "code-smell"
slug: "message-chains"
url: "http://localhost:3000/pt-br/smells/message-chains.md"
category: "Couplers"
description: "No código você vê uma série de chamadas parecidas com $a->b()->c()->d()"
---
# Cadeias de Mensagens

> No código você vê uma série de chamadas parecidas com $a->b()->c()->d()

## Signs and Symptoms

No código você vê uma série de chamadas parecidas com `$a->b()->c()->d()`

## Reasons for the Problem

Uma cadeia de mensagens ocorre quando um cliente solicita outro objeto, esse objeto solicita ainda outro, e assim por diante. Essas cadeias significam que o cliente depende da navegação ao longo da estrutura de classes. Qualquer alteração nessas relações exige modificar o cliente.

## Payoff

* Reduz as dependências entre as classes de uma cadeia.
* Reduz a quantidade de código inchado.
## Relations

**Treated by**

- [Ocultar Delegação](/pt-br/hide-delegate.md)
- [Extrair Método](/pt-br/extract-method.md)
- [Mover Método](/pt-br/move-method.md)


## Detected by

- **pmd** `LawOfDemeter` — Law of Demeter (chained calls) (https://docs.pmd-code.org/latest/pmd_rules_java_design.html#lawofdemeter)
