---
title: "Extraire l'interface"
type: "refactoring-technique"
slug: "extract-interface"
url: "http://localhost:3000/fr/extract-interface.md"
category: "Dealing with Generalization"
description: "Problème : plusieurs clients utilisent la même partie de l'interface d'une classe. Autre cas : une partie de l'interface est identique dans deux classes. Solution : déplacez cette portion identique dans sa propre interface."
---
# Extraire l'interface

> Problème : plusieurs clients utilisent la même partie de l'interface d'une classe. Autre cas : une partie de l'interface est identique dans deux classes. Solution : déplacez cette portion identique dans sa propre interface.

## Problem

Plusieurs clients utilisent la même partie de l'interface d'une classe. Autre cas : une partie de l'interface est identique dans deux classes.

## Solution

Déplacez cette portion identique dans sa propre interface.

## Why Refactor

1. Les interfaces sont très pertinentes lorsque les classes jouent des rôles particuliers dans différentes situations. Utilisez [Extraire l'interface](/fr/extract-interface) pour indiquer explicitement quel rôle.
2. Un autre cas pratique se présente lorsque vous devez décrire les opérations qu'une classe effectue sur son serveur. S'il est prévu d'autoriser à terme l'utilisation de serveurs de plusieurs types, tous les serveurs doivent implémenter l'interface.

## How to Refactor

1. Créez une interface vide.
2. Déclarez les opérations communes dans l'interface.
3. Déclarez les classes nécessaires comme implémentant l'interface.
4. Modifiez les déclarations de type dans le code client pour utiliser la nouvelle interface.
## Relations

**Similar techniques**

- [Extraire une superclasse](/fr/extract-superclass.md)

