No estoy seguro de si se ha hecho una pregunta similar antes, la busqué, pero no obtuve ninguna respuesta útil.Setters vs constructores sobrecargados en Java
Como lo sugiere la pregunta, ¿qué es mejor tener un constructor sobrecargado o tener múltiples funciones de configuración?
Escenario:
public class Something {
private int a;
private int b;
public Something(int a, int b) {
this.a = a;
this.b = b;
}
... // Do Something
}
Ahora, mi requisito básico era para tener sólo dos parámetros. Ahora, mañana, el requisito se cambia y me piden que agregue un nuevo parámetro, c y luego el día siguiente d, y me dan una declaración que dice que podemos tener más campos.
Ya tengo dependencia para este constructor en proyectos múltiples. Ahora, volviendo a mi pregunta
- ¿Es aconsejable seguir agregando los nuevos campos al constructor ya sobrecargado?
- ¿Crear un nuevo constructor sobrecargado cada vez que necesito agregar un nuevo campo para no romper el código dependiente?
- o simplemente utilizar el constructor por defecto vacío predeterminado y utilizar los emisores solamente (echar a perder mi inmutabilidad, que no es de gran preocupación)
¿Cuál es el consejo que usted me puede dar?
"estropeando mi inmutabilidad, que no es motivo de gran preocupación" Si se ha esforzado por hacer que una clase sea inmutable (y por lo tanto mucho más fácil de razonar), no desperdicie ese trabajo a la ligera. –
'... ¿Qué es mejor, tener un constructor sobrecargado o tener múltiples funciones de configuración?' "Sí". Pero en serio, todo depende del contexto. A veces necesita ambos, a veces se requiere que trabaje dentro de las restricciones de JavaBeans, ... –