---
title: "Cadenas de mensajes"
type: "code-smell"
slug: "message-chains"
url: "http://localhost:3000/es/smells/message-chains.md"
category: "Couplers"
description: "En el código ves una serie de llamadas que se asemejan a $a->b()->c()->d()"
---
# Cadenas de mensajes

> En el código ves una serie de llamadas que se asemejan a $a->b()->c()->d()

## Signs and Symptoms

En el código ves una serie de llamadas que se asemejan a `$a->b()->c()->d()`

## Reasons for the Problem

Una cadena de mensajes ocurre cuando un cliente solicita otro objeto, ese objeto solicita otro más, y así sucesivamente. Estas cadenas significan que el cliente depende de la navegación a lo largo de la estructura de clases. Cualquier cambio en estas relaciones requiere modificar el cliente.

## Payoff

* Reduce las dependencias entre las clases de una cadena.
* Reduce la cantidad de código sobrecargado.
## Relations

**Treated by**

- [Ocultar Delegado](/es/hide-delegate.md)
- [Extraer método](/es/extract-method.md)
- [Mover método](/es/move-method.md)


## Detected by

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