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.