title: Building big, immutable objects without using constructors having long parameter lists
body: <p>I have some big (more than 3 fields) objects that can and should be immutable. Every time I run into that case I tend to create constructor abominations with long parameter lists. </p>
  
  <p>It doesn't feel right, it is hard to use, and readability suffers.</p>
  
  <p>It is even worse if the fields are some sort of collection type like lists. A simple <code>addSibling(S s)</code> would ease the object creation so much but renders the object mutable.</p>
  
  <p>What do you guys use in such cases? </p>
  
  <p>I'm on Scala and Java, but I think the problem is language agnostic as long as the language is object oriented.</p>
  
  <p>Solutions I can think of:</p>
  
  <ol>
  <li>"Constructor abominations with long parameter lists"</li>
  <li>The Builder Pattern</li>
  </ol>