Construir objetos grandes e inmutables sin usar constructores que tengan largas listas de parámetros

Tengo algunos objetos grandes (más de 3 campos) que pueden y deben ser inmutables. Cada vez que me encuentro con ese caso, tiendo a crear abominaciones de constructor con largas listas de parámetros. No se siente bien, es difícil de usar y la legibilidad sufre.

Es aún peor si los campos son algún tipo de colección como listas. Un simpleaddSibling(S s) facilitaría mucho la creación del objeto pero hace que el objeto sea mutable.

¿Qué usan ustedes en tales casos? Estoy en Scala y Java, pero creo que el problema es independiente del lenguaje siempre que el lenguaje esté orientado a objetos.

Soluciones en las que puedo pensar:

"Abominaciones de constructor con largas listas de parámetros"El patrón de constructor

¡Gracias por tu contribución!

Respuestas a la pregunta(9)

Su respuesta a la pregunta