Заполнение объекта может быть реализовано в несколько способов. Один из них – это использование конструкторов или Helper методов. Но проблема в том, что таких методов может быть много, а также количество и тип входных параметров может меняться, что вызывает трудности при чтении.

Решением является использование Builder классов, которые возвращают объект этого же класса с частично заполненными данными.

Реализация такого класса будет выглядеть так

Также в методе Build можно выполнять преобразования или проверку обязательных полей, если в этом есть необходимость.