¿Cuándo usar métodos estáticos en Java? Ejemplos y mejores prácticas
¡Hola, colegas! Soy un desarrollador Java principiante y me atormenta una pregunta: ¿cuándo usar correctamente métodos estáticos y cuándo usar métodos normales (de instancia)?
Entiendo que `static` significa que el método pertenece a la clase, no al objeto. Pero en la práctica a menudo me confundo. Por ejemplo, escribo una pequeña calculadora:
```java
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public static int multiply(int a, int b) {
return a * b;
}
}
```
Ambos métodos funcionan, pero no estoy seguro de cuál es la opción correcta. He visto que en clases utilitarias (como `Math` o `Collections`) casi todos los métodos son estáticos. Pero en mis proyectos a menudo veo que los métodos estáticos se usan para fábricas o singletons.
También me confunde: si un método no usa campos de la clase (no accede a `this`), ¿debería hacerlo estático? ¿O no es una regla obligatoria? ¿Y qué pasa con las pruebas? Los métodos estáticos son más difíciles de mockear, ¿verdad?
Aconsejenme, por fa
No answers yet.
Inicia sesión para dejar una respuesta