---
title: "Remonter le champ"
type: "refactoring-technique"
slug: "pull-up-field"
url: "http://localhost:3000/fr/pull-up-field.md"
category: "Dealing with Generalization"
description: "Problème : deux classes possèdent le même champ. Solution : supprimez le champ des sous-classes et déplacez-le vers la super-classe."
---
# Remonter le champ

> Problème : deux classes possèdent le même champ. Solution : supprimez le champ des sous-classes et déplacez-le vers la super-classe.

## Problem

Deux classes possèdent le même champ.

## Solution

Supprimez le champ des sous-classes et déplacez-le vers la super-classe.

## Why Refactor

Les sous-classes ont grandi et évolué séparément, faisant apparaître des champs et des méthodes identiques (ou presque identiques).

## Benefits

* Élimine la duplication des champs dans les sous-classes.
* Facilite le déplacement ultérieur des méthodes dupliquées, si elles existent, des sous-classes vers une super-classe.

## How to Refactor

1. Assurez-vous que les champs servent aux mêmes besoins dans les sous-classes.
2. Si les champs portent des noms différents, donnez-leur le même nom et remplacez toutes les références aux champs dans le code existant.
3. Créez un champ portant le même nom dans la super-classe. Notez que si les champs étaient privés, le champ de la super-classe doit être protégé (protected).
4. Supprimez les champs des sous-classes.
5. Vous pouvez envisager d'utiliser [Auto-encapsuler le champ](/fr/self-encapsulate-field) pour le nouveau champ, afin de le masquer derrière des méthodes d'accès.
## Relations

**Similar techniques**

- [Remonter une méthode](/fr/pull-up-method.md)

**Opposite refactorings**

- [Descendre le champ](/fr/push-down-field.md)

**Eliminates smells**

- [Code dupliqué](/fr/smells/duplicate-code.md)

