Optimización de código

Métodos con Pocos Parámetros

Mantener un número reducido de parámetros en los métodos mejora la legibilidad del código, facilita su mantenimiento y reduce la posibilidad de errores. Cuando un método recibe demasiados parámetros, puede ser difícil de entender y propenso a problemas como el cambio accidental del orden de los valores al llamarlo.

Ejemplo incorrecto: Método con demasiados parámetros

Cuando un método recibe demasiados parámetros, puede volverse difícil de manejar y propenso a errores.

1class Usuario {
2    void registrarUsuario(String nombre, String apellido, String direccion, String telefono, String email, String fechaNacimiento) {
3        System.out.println("Usuario registrado: " + nombre + " " + apellido);
4    }
5}

Problema

  • Difícil de leer y comprender.
  • Si el orden de los parámetros cambia, es probable que se generen errores.
  • Se dificulta la extensión del método en el futuro.

Ejemplo optimizado: Uso de una estructura de datos

En lugar de usar múltiples parámetros, podemos utilizar una clase u objeto para representar los datos.

1class Usuario {
2    String nombre;
3    String apellido;
4    String direccion;
5    String telefono;
6    String email;
7    String fechaNacimiento;
8
9    public Usuario(String nombre, String apellido, String direccion, String telefono, String email, String fechaNacimiento) {
10        this.nombre = nombre;
11        this.apellido = apellido;
12        this.direccion = direccion;
13        this.telefono = telefono;
14        this.email = email;
15        this.fechaNacimiento = fechaNacimiento;
16    }
17}
18
19class Registro {
20    void registrarUsuario(Usuario usuario) {
21        System.out.println("Usuario registrado: " + usuario.nombre + " " + usuario.apellido);
22    }
23}

Ejemplo incorrecto: Métodos con múltiples parámetros numéricos

Cuando un método recibe múltiples parámetros del mismo tipo, es difícil recordar el orden correcto.

1public class Calculo {
2    double calcularPrecio(double precioBase, double descuento, double impuesto, double envio) {
3        return precioBase - descuento + impuesto + envio;
4    }
5}

Problema

  • Difícil de entender qué significa cada número cuando se llama a la función.
  • Propenso a errores si los parámetros se pasan en el orden incorrecto.

Ejemplo optimizado: Uso de una estructura de datos para agrupar valores

Aquí agrupamos los parámetros en una estructura que hace más legible y fácil de usar la función.

1class PrecioInfo {
2    double precioBase;
3    double descuento;
4    double impuesto;
5    double envio;
6
7    public PrecioInfo(double precioBase, double descuento, double impuesto, double envio) {
8        this.precioBase = precioBase;
9        this.descuento = descuento;
10        this.impuesto = impuesto;
11        this.envio = envio;
12    }
13}
14
15public class Calculo {
16    double calcularPrecio(PrecioInfo info) {
17        return info.precioBase - info.descuento + info.impuesto + info.envio;
18    }
19}