---
title: "Intégrer la méthode"
type: "refactoring-technique"
slug: "inline-method"
url: "http://localhost:3000/fr/inline-method.md"
category: "Composing Methods"
description: "Problème : lorsque le corps d'une méthode est plus parlant que la méthode elle-même, employez cette technique. Solution : remplacez les appels à la méthode par son contenu, puis supprimez la méthode."
languages: ["java", "csharp", "php", "python", "typescript"]
---
# Intégrer la méthode

> Problème : lorsque le corps d'une méthode est plus parlant que la méthode elle-même, employez cette technique. Solution : remplacez les appels à la méthode par son contenu, puis supprimez la méthode.

## Problem

Lorsque le corps d'une méthode est plus parlant que la méthode elle-même, employez cette technique.

## Solution

Remplacez les appels à la méthode par son contenu, puis supprimez la méthode.

## Why Refactor

Une méthode se contente de déléguer à une autre méthode. En soi, cette délégation n'a rien de problématique. Mais lorsque ces méthodes sont nombreuses, elles forment un enchevêtrement déroutant et difficile à démêler.

Souvent, les méthodes ne sont pas trop courtes _au départ_, mais le deviennent à mesure que le programme évolue. N'hésitez donc pas à vous débarrasser des méthodes qui ont fait leur temps.

## Benefits

* En réduisant le nombre de méthodes inutiles, vous rendez le code plus direct.

## How to Refactor

1. Assurez-vous que la méthode n'est pas redéfinie dans des sous-classes. Si elle l'est, renoncez à cette technique.
2. Trouvez tous les appels à la méthode. Remplacez ces appels par le contenu de la méthode.
3. Supprimez la méthode.
## Relations

**Opposite refactorings**

- [Extraire une méthode](/fr/extract-method.md)

**Eliminates smells**

- [Généralité spéculative](/fr/smells/speculative-generality.md)

## Code Examples

### java

```java
// Before
class PizzaDelivery {
  // ...
  int getRating() {
    return moreThanFiveLateDeliveries() ? 2 : 1;
  }
  boolean moreThanFiveLateDeliveries() {
    return numberOfLateDeliveries > 5;
  }
}

// After
class PizzaDelivery {
  // ...
  int getRating() {
    return numberOfLateDeliveries > 5 ? 2 : 1;
  }
}
```

### csharp

```csharp
// Before
class PizzaDelivery 
{
  // ...
  int GetRating() 
  {
    return MoreThanFiveLateDeliveries() ? 2 : 1;
  }
  bool MoreThanFiveLateDeliveries() 
  {
    return numberOfLateDeliveries > 5;
  }
}

// After
class PizzaDelivery 
{
  // ...
  int GetRating() 
  {
    return numberOfLateDeliveries > 5 ? 2 : 1;
  }
}
```

### php

```php
// Before
function getRating() {
  return ($this->moreThanFiveLateDeliveries()) ? 2 : 1;
}
function moreThanFiveLateDeliveries() {
  return $this->numberOfLateDeliveries > 5;
}

// After
function getRating() {
  return ($this->numberOfLateDeliveries > 5) ? 2 : 1;
}
```

### python

```python
// Before
class PizzaDelivery:
    # ...
    def getRating(self):
        return 2 if self.moreThanFiveLateDeliveries() else 1
  
    def moreThanFiveLateDeliveries(self):
        return self.numberOfLateDeliveries > 5

// After
class PizzaDelivery:
  # ...
  def getRating(self):
    return 2 if self.numberOfLateDeliveries > 5 else 1
```

### typescript

```typescript
// Before
class PizzaDelivery {
  // ...
  getRating(): number {
    return moreThanFiveLateDeliveries() ? 2 : 1;
  }
  moreThanFiveLateDeliveries(): boolean {
    return numberOfLateDeliveries > 5;
  }
}

// After
class PizzaDelivery {
  // ...
  getRating(): number {
    return numberOfLateDeliveries > 5 ? 2 : 1;
  }
}
```

