En algunos de nuestros proyectos, hay una jerarquía de clases que agrega más parámetros a medida que avanza en la cadena. En la parte inferior, algunas de las clases pueden tener hasta 30 parámetros, 28 de los cuales se pasan al superconstructor.Gestión de constructores con muchos parámetros en Java
Reconozco que usar DI automatizado a través de algo como Guice sería agradable, pero debido a algunas razones técnicas, estos proyectos específicos están limitados a Java.
Una convención de organizar los argumentos alfabéticamente por tipo no funciona porque si se refactoriza un tipo (el Círculo que pasaba para el argumento 2 ahora es una Forma) puede estar repentinamente fuera de servicio.
Esta pregunta puede ser específica y llena de "Si ese es su problema, lo está haciendo mal a nivel de diseño" críticas, pero estoy buscando cualquier punto de vista.
Por supuesto, con las importaciones estáticas ni siquiera tiene que "ver" estos "constructores" en absoluto. Por ejemplo, podría tener el nombre de métodos estáticos (String name) que devuelve un constructor y Student (StudentBuilder) que devuelve un alumno. De ahí Estudiante (nombre ("Joe"). Edad (15) .motto ("Me he mojado")); –
@oxbow_lakes: en su ejemplo, ¿qué clase tiene el nombre del método estático (String name)? – user443854
Técnicamente hablando, es posible usar la clase de Estudiante para construir un nuevo alumno. He agregado los métodos dentro de la clase de Estudiante y funcionó bien. De esta forma no necesitaba tener otra clase de constructores. No estoy seguro si esto es deseable sin embargo. ¿Hay alguna razón para usar otra clase (StudentBuilder) para construirlo? – WVrock