---
title: "Chaînes de messages"
type: "code-smell"
slug: "message-chains"
url: "http://localhost:3000/fr/smells/message-chains.md"
category: "Couplers"
description: "Dans le code, vous voyez une série d'appels ressemblant à $a->b()->c()->d()"
---
# Chaînes de messages

> Dans le code, vous voyez une série d'appels ressemblant à $a->b()->c()->d()

## Signs and Symptoms

Dans le code, vous voyez une série d'appels ressemblant à `$a->b()->c()->d()`

## Reasons for the Problem

Une chaîne de messages se produit lorsqu'un client sollicite un autre objet, que cet objet en sollicite un autre, et ainsi de suite. Ces chaînes signifient que le client dépend de la navigation à travers la structure des classes. Tout changement dans ces relations nécessite de modifier le client.

## Payoff

* Réduit les dépendances entre les classes d'une chaîne.
* Réduit la quantité de code superflu.
## Relations

**Treated by**

- [Cacher le délégué](/fr/hide-delegate.md)
- [Extraire une méthode](/fr/extract-method.md)
- [Déplacer une méthode](/fr/move-method.md)


## Detected by

- **pmd** `LawOfDemeter` — Loi de Déméter (appels chaînés) (https://docs.pmd-code.org/latest/pmd_rules_java_design.html#lawofdemeter)
