---
title: "Grupos de datos"
type: "code-smell"
slug: "data-clumps"
url: "http://localhost:3000/es/smells/data-clumps.md"
category: "Bloaters"
description: "A veces, diferentes partes del código contienen grupos idénticos de variables (como los parámetros para conectarse a una base de datos). Estos grupos deberían convertirse en sus propias clases."
---
# Grupos de datos

> A veces, diferentes partes del código contienen grupos idénticos de variables (como los parámetros para conectarse a una base de datos). Estos grupos deberían convertirse en sus propias clases.

## Signs and Symptoms

A veces, diferentes partes del código contienen grupos idénticos de variables (como los parámetros para conectarse a una base de datos). Estos grupos deberían convertirse en sus propias clases.

## Reasons for the Problem

A menudo estos grupos de datos se deben a una estructura deficiente del programa o a la «programación copypasta».

Si quieres asegurarte de si unos datos forman o no un grupo de datos, simplemente elimina uno de los valores y observa si los demás siguen teniendo sentido. Si no es así, es una buena señal de que ese grupo de variables debería combinarse en un objeto.

## Payoff

* Mejora la comprensión y la organización del código. Las operaciones sobre datos concretos quedan ahora reunidas en un único lugar, en lugar de dispersas de forma desordenada por todo el código.
* Reduce el tamaño del código.
## Relations

**Treated by**

- [Extraer clase](/es/extract-class.md)
- [Introducir Objeto Parámetro](/es/introduce-parameter-object.md)
- [Preservar el Objeto Completo](/es/preserve-whole-object.md)


## Detected by

- **sonar** `S107` — Las funciones no deberían tener demasiados parámetros (https://rules.sonarsource.com/java/rspec-107/)
- **pmd** `ExcessiveParameterList` — Lista de parámetros excesiva (https://docs.pmd-code.org/latest/pmd_rules_java_design.html#excessiveparameterlist)
- **eslint** `max-params` — Impón un número máximo de parámetros (https://eslint.org/docs/latest/rules/max-params)
