---
title: "Remplacer une référence par une valeur"
type: "refactoring-technique"
slug: "change-reference-to-value"
url: "http://localhost:3000/fr/change-reference-to-value.md"
category: "Organizing Data"
description: "Problème : vous avez un objet référence trop petit et trop rarement modifié pour justifier la gestion de son cycle de vie. Solution : transformez-le en objet valeur."
---
# Remplacer une référence par une valeur

> Problème : vous avez un objet référence trop petit et trop rarement modifié pour justifier la gestion de son cycle de vie. Solution : transformez-le en objet valeur.

## Problem

Vous avez un objet référence trop petit et trop rarement modifié pour justifier la gestion de son cycle de vie.

## Solution

Transformez-le en objet valeur.

## Why Refactor

L’envie de passer d’une référence à une valeur peut venir de l’inconvénient de travailler avec la référence. Les références requièrent une gestion de votre part :

* Elles nécessitent toujours de demander l’objet voulu au système de stockage.
* Les références en mémoire peuvent être peu pratiques à manipuler.
* Travailler avec des références est particulièrement difficile, comparé aux valeurs, sur les systèmes distribués et parallèles.

Les valeurs sont particulièrement utiles si vous préférez avoir des objets immuables plutôt que des objets dont l’état peut changer au cours de leur durée de vie.

## Benefits

* Une propriété importante des objets est qu’ils devraient être immuables. Le même résultat devrait être obtenu pour chaque requête qui retourne une valeur d’objet. Si tel est le cas, aucun problème ne se pose même s’il existe de nombreux objets représentant la même chose.
* Les valeurs sont bien plus faciles à implémenter.

## How to Refactor

1. Rendez l’objet immuable. L’objet ne devrait avoir aucun setter ni aucune autre méthode modifiant son état et ses données ([Supprimer une méthode d’affectation](/fr/remove-setting-method) peut aider ici). Le seul endroit où des données devraient être affectées aux champs d’un objet valeur est un constructeur.
2. Créez une méthode de comparaison permettant de comparer deux valeurs.
3. Vérifiez si vous pouvez supprimer la méthode fabrique et rendre le constructeur de l’objet public.
## Relations

**Opposite refactorings**

- [Transformer une valeur en référence](/fr/change-value-to-reference.md)

