Luckily, there is a third alternative that combines the safety of the telescoping constructor pattern with the readability of the JavaBeans pattern. It is a form of the Builder pattern [Gamma95, p. 97]. Instead of making the desired object directly, the client calls a constructor (or static factory) with all of the required parameters and gets a builder object. Then the client calls setter-like methods on the builder object to set each optional parameter of interest. Finally, the client calls a parameterless
build method to generate the object, which is immutable. The builder...
Builder pattern to build an immutable object
Share this highlighthttp://www.safaribooksonline.com/a/effective-java-2nd/96668/