Replaces constructor calls with builder patterns.
Class constructors are left unchanged, but clients are able to construct objects step by step.
It can be especially useful for constructors with a long list of optional parameters.