---
title: "Supprimer l’intermédiaire"
type: "refactoring-technique"
slug: "remove-middle-man"
url: "http://localhost:3000/fr/remove-middle-man.md"
category: "Moving Features between Objects"
description: "Problème : Une classe possède trop de méthodes qui se contentent de déléguer à d’autres objets. Solution : Supprimez ces méthodes et obligez le client à appeler directement les méthodes finales."
---
# Supprimer l’intermédiaire

> Problème : Une classe possède trop de méthodes qui se contentent de déléguer à d’autres objets. Solution : Supprimez ces méthodes et obligez le client à appeler directement les méthodes finales.

## Problem

Une classe possède trop de méthodes qui se contentent de déléguer à d’autres objets.

## Solution

Supprimez ces méthodes et obligez le client à appeler directement les méthodes finales.

## Why Refactor

Pour décrire cette technique, nous utiliserons les termes de [Masquer le délégué](/fr/hide-delegate), à savoir :

* Le _serveur_ est l’objet auquel le client a un accès direct.
* Le _délégué_ est l’objet final qui contient la fonctionnalité dont le client a besoin.

Il existe deux types de problèmes :

1. La _classe-serveur_ ne fait rien par elle-même et ne crée qu’une complexité inutile. Dans ce cas, demandez-vous si cette classe est vraiment nécessaire.
2. Chaque fois qu’une nouvelle fonctionnalité est ajoutée au _délégué_, vous devez créer une méthode déléguante correspondante dans la _classe-serveur_. Si de nombreuses modifications sont apportées, cela deviendra plutôt fastidieux.

## How to Refactor

1. Créez un getter pour accéder à l’objet _classe-déléguée_ depuis l’objet _classe-serveur_.
2. Remplacez les appels aux méthodes déléguantes de la _classe-serveur_ par des appels directs aux méthodes de la _classe-déléguée_.
## Relations

**Opposite refactorings**

- [Cacher le délégué](/fr/hide-delegate.md)

**Eliminates smells**

- [Intermédiaire](/fr/smells/middle-man.md)

