a JavaBean may be in an inconsistent state partway through its construction. The class does not have the option of enforcing consistency merely by checking the validity of the constructor parameters.
(Javabean pattern is explicitly calling setters after simple constructor). On the other hand, the build() method at end of chain of builder pattern calls can ensure consistent/valid state and barf if not satisfied