I can\'t decide which approach is better for creating objects with a large number of fields (10+) (all mandatory) the constructor approach of the getter/setter. Constructor
The better approach (imho) is to use some kind of builder:
MyClass a = new MyClassBuilder().blah("blah").foo("foo").doStuff().toMyClass();
where MyClass is still immutable but has a far more readable creation than a constructor with 10 arguments.
This is also called a fluent interface. Josh Bloch refers to this in Effective Java.