---
title: "Classe de données"
type: "code-smell"
slug: "data-class"
url: "http://localhost:3000/fr/smells/data-class.md"
category: "Dispensables"
description: "Une classe de données désigne une classe qui ne contient que des champs et des méthodes rudimentaires pour y accéder (getters et setters). Ce ne sont que de simples conteneurs de données utilisés par d'autres classes. Ces classes ne contiennent aucune fonctionnalité supplémentaire et ne peuvent pas opérer de manière autonome sur les données qu'elles possèdent."
---
# Classe de données

> Une classe de données désigne une classe qui ne contient que des champs et des méthodes rudimentaires pour y accéder (getters et setters). Ce ne sont que de simples conteneurs de données utilisés par d'autres classes. Ces classes ne contiennent aucune fonctionnalité supplémentaire et ne peuvent pas opérer de manière autonome sur les données qu'elles possèdent.

## Signs and Symptoms

Une classe de données désigne une classe qui ne contient que des champs et des méthodes rudimentaires pour y accéder (getters et setters). Ce ne sont que de simples conteneurs de données utilisés par d'autres classes. Ces classes ne contiennent aucune fonctionnalité supplémentaire et ne peuvent pas opérer de manière autonome sur les données qu'elles possèdent.

## Reasons for the Problem

Il est normal qu'une classe nouvellement créée ne contienne que quelques champs publics (et peut-être même une poignée de getters/setters). Mais la véritable puissance des objets réside dans le fait qu'ils peuvent contenir des comportements ou des opérations sur leurs données.

## Payoff

* Améliore la compréhension et l'organisation du code. Les opérations sur des données particulières sont désormais regroupées en un seul endroit, plutôt que dispersées au hasard dans le code.
* Vous aide à repérer la duplication dans le code client.
## Relations

**Treated by**

- [Encapsuler un champ](/fr/encapsulate-field.md)
- [Encapsuler une collection](/fr/encapsulate-collection.md)
- [Déplacer une méthode](/fr/move-method.md)
- [Extraire une méthode](/fr/extract-method.md)
- [Supprimer la méthode d'affectation](/fr/remove-setting-method.md)
- [Masquer la méthode](/fr/hide-method.md)


## Detected by

- **pmd** `DataClass` — Data Class (PMD) (https://pmd.github.io/pmd/pmd_rules_java_design.html#dataclass)
