---
title: "Consolidar fragmentos condicionales duplicados"
type: "refactoring-technique"
slug: "consolidate-duplicate-conditional-fragments"
url: "http://localhost:3000/es/consolidate-duplicate-conditional-fragments.md"
category: "Simplifying Conditional Expressions"
description: "Problema: Se encuentra código idéntico en todas las ramas de un condicional. Solución: Mueve el código fuera del condicional."
languages: ["java", "csharp", "php", "python", "typescript"]
---
# Consolidar fragmentos condicionales duplicados

> Problema: Se encuentra código idéntico en todas las ramas de un condicional. Solución: Mueve el código fuera del condicional.

## Problem

Se encuentra código idéntico en todas las ramas de un condicional.

## Solution

Mueve el código fuera del condicional.

## Why Refactor

Se encuentra código duplicado dentro de todas las ramas de un condicional, a menudo como resultado de la evolución del código dentro de las ramas del condicional. El desarrollo en equipo puede ser un factor que contribuya a esto.

## Benefits

* Eliminación de código duplicado.

## How to Refactor

1. Si el código duplicado está al principio de las ramas del condicional, mueve el código a un lugar antes del condicional.
2. Si el código se ejecuta al final de las ramas, colócalo después del condicional.
3. Si el código duplicado está situado de forma aleatoria dentro de las ramas, primero intenta mover el código al principio o al final de la rama, dependiendo de si altera el resultado del código posterior.
4. Si resulta apropiado y el código duplicado tiene más de una línea, prueba a usar [Extraer método](/es/extract-method).
## Relations

**Eliminates smells**

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

