---
title: "Consolidar Fragmentos Condicionais Duplicados"
type: "refactoring-technique"
slug: "consolidate-duplicate-conditional-fragments"
url: "http://localhost:3000/pt-br/consolidate-duplicate-conditional-fragments.md"
category: "Simplifying Conditional Expressions"
description: "Problema: Código idêntico pode ser encontrado em todas as ramificações de um condicional. Solução: Mova o código para fora do condicional."
languages: ["java", "csharp", "php", "python", "typescript"]
---
# Consolidar Fragmentos Condicionais Duplicados

> Problema: Código idêntico pode ser encontrado em todas as ramificações de um condicional. Solução: Mova o código para fora do condicional.

## Problem

Código idêntico pode ser encontrado em todas as ramificações de um condicional.

## Solution

Mova o código para fora do condicional.

## Why Refactor

Código duplicado é encontrado dentro de todas as ramificações de um condicional, muitas vezes como resultado da evolução do código dentro das ramificações condicionais. O desenvolvimento em equipe pode ser um fator que contribui para isso.

## Benefits

* Eliminação de código duplicado.

## How to Refactor

1. Se o código duplicado estiver no início das ramificações do condicional, mova-o para um ponto antes do condicional.
2. Se o código for executado ao final das ramificações, coloque-o depois do condicional.
3. Se o código duplicado estiver situado aleatoriamente dentro das ramificações, primeiro tente mover o código para o início ou o fim da ramificação, dependendo de se isso altera o resultado do código subsequente.
4. Se for apropriado e o código duplicado tiver mais de uma linha, tente usar [Extrair Método](/pt-br/extract-method).
## Relations

**Eliminates smells**

- [Código Duplicado](/pt-br/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();
```

