- Telescoping constructor pattern - does not scale well!
- unreadable, prone to hard to debug errors
- JavaBeans pattern - allows inconsistency, mandates mutability
- invariance cannot be maintained
- maintaining thread safety of the class difficult
- Builder pattern - safe and readable
- Parameter validation can be done while object construction
- Can have multiple varargs parameters
- Builder pattern is flexible
- Builder whose parameters have been set makes a fine Abstract Factory
Disadvantages
- Creating a builder object may be costly in some performance critical situations
- It is more verbose than telescoping constructor pattern
Summary
- Builder pattern is a good choice when designing classes whose constructors
or static factories would have more than a handful of parameters