---
title: "Regrouper les fragments conditionnels dupliqués"
type: "refactoring-technique"
slug: "consolidate-duplicate-conditional-fragments"
url: "http://localhost:3000/fr/consolidate-duplicate-conditional-fragments.md"
category: "Simplifying Conditional Expressions"
description: "Problème : un code identique se retrouve dans toutes les branches d’une condition. Solution : déplacez le code en dehors de la condition."
languages: ["java", "csharp", "php", "python", "typescript"]
---
# Regrouper les fragments conditionnels dupliqués

> Problème : un code identique se retrouve dans toutes les branches d’une condition. Solution : déplacez le code en dehors de la condition.

## Problem

Un code identique se retrouve dans toutes les branches d’une condition.

## Solution

Déplacez le code en dehors de la condition.

## Why Refactor

Du code dupliqué se trouve à l’intérieur de toutes les branches d’une condition, souvent comme résultat de l’évolution du code au sein des branches conditionnelles. Le développement en équipe peut être un facteur contributif.

## Benefits

* Déduplication du code.

## How to Refactor

1. Si le code dupliqué se trouve au début des branches conditionnelles, déplacez-le à un endroit situé avant la condition.
2. Si le code est exécuté à la fin des branches, placez-le après la condition.
3. Si le code dupliqué est situé de façon aléatoire à l’intérieur des branches, essayez d’abord de le déplacer au début ou à la fin de la branche, selon qu’il modifie ou non le résultat du code qui suit.
4. Si cela est pertinent et que le code dupliqué fait plus d’une ligne, essayez d’utiliser [Extraire une méthode](/fr/extract-method).
## Relations

**Eliminates smells**

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

## Code Examples

### java

```java
// Before
if (isSpecialDeal()) {
  total = price * 0.95;
  send();
}
else {
  total = price * 0.98;
  send();
}

// After
if (isSpecialDeal()) {
  total = price * 0.95;
}
else {
  total = price * 0.98;
}
send();
```

### csharp

```csharp
// Before
if (IsSpecialDeal()) 
{
  total = price * 0.95;
  Send();
}
else 
{
  total = price * 0.98;
  Send();
}

// After
if (IsSpecialDeal())
{
  total = price * 0.95;
}
else
{
  total = price * 0.98;
}
Send();
```

### php

```php
// Before
if (isSpecialDeal()) {
  $total = $price * 0.95;
  send();
} else {
  $total = $price * 0.98;
  send();
}

// After
if (isSpecialDeal()) {
  $total = $price * 0.95;
} else {
  $total = $price * 0.98;
}
send();
```

### python

```python
// Before
if isSpecialDeal():
    total = price * 0.95
    send()
else:
    total = price * 0.98
    send()

// After
if isSpecialDeal():
    total = price * 0.95
else:
    total = price * 0.98
send()
```

### typescript

```typescript
// Before
if (isSpecialDeal()) {
  total = price * 0.95;
  send();
}
else {
  total = price * 0.98;
  send();
}

// After
if (isSpecialDeal()) {
  total = price * 0.95;
}
else {
  total = price * 0.98;
}
send();
```

