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
A fourth option that would be nice to have in some situations—this nutrition example is a good one—is named parameters with defaults.


Builders are likely better if there's complexity (like v…