Паттерн "Строитель" (Builder) — это порождающий паттерн проектирования, который позволяет создавать сложные объекты пошагово, предоставляя различные варианты конфигурации.
- Назначение: Отделить процесс конструирования объекта от его представления. Позволяет получать разные представления одного и того же процесса конструирования.
- Преимущества:
- Позволяет пошагово строить объект, скрывая детали конструирования.
- Облегчает создание объектов с большим количеством необязательных параметров (в отличие от конструкторов с множеством аргументов или анти-паттерна Telescoping Constructors).
- Можно использовать один и тот же код строительства для создания различных представлений объекта.
- Основные участники:
- Builder (Строитель): Интерфейс или абстрактный класс, определяющий шаги построения частей объекта.
- ConcreteBuilder (Конкретный Строитель): Реализация интерфейса Builder, создающая конкретные части объекта и предоставляющая метод для получения конечного результата.
- Director (Директор): Определяет последовательность шагов для создания объекта, используя объект Builder. Директор является необязательным и клиент может работать напрямую с Строителем.
- Product (Продукт): Представляемый объект, который строится.
Пример структуры (Java):
java