Суть паттерна Строитель - это порождающие паттерн проектирования, который позволяет создавать сложные объекты пошагово. Строитель дает возможность использовать один и тот же код строительства для получения разных представлений объектов. Представьте сложный объект, требующий кропотливой пошаговой инициализации множества полей и вложенных объектов. Код инициализации таких объектов обычно спрятан внутри монструозного конструктора с десятком параметров. Либо еще хуже - распылен по всему клиентскому коду. Паттерн Строитель предлагает вынести конструирование объекта за пределы его собственного класса, поручив это дело отдельным объектам, называемым строителями. Паттерн предлагает разбить процесс конструирование объекта на отдельные шаги. Чтобы создавать объект, вам нужно поочередно вызывать методы строителя. Причем не нужно запускать все шаги, а только те, что нужны для производства объекта определенной конфигурации. Зачастую один и тот же шаг строительства может отличаться для разных вариац