《Effective java 2》Item 2: Consider a builder when faced with many constructor
Traditionally, programmers have used the
telescoping constructor pattern.
In short, the telescoping constructor pattern works, but it is hard to write client code when there are many parameters, and