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

Пример

Представьте, что мы хотим построить дом, мы хотим иметь возможность построить простой дом или дома с бассейном и/или гаражом. Мы могли бы создать конструктор с двумя логическими полями для hasGarage и hasPool. Тогда нам нужно было бы передать ложь для большинства домов.

Когда использовать Builder?

  • Когда у вас есть класс с необязательными полями, которые часто остаются нулевыми.
  • Когда вам нужно создать сложный объект, состоящий из более простых объектов.

Из чего состоит шаблон Builder?

  • Интерфейс Builder (интерфейс, описывающий, что должны иметь возможность создавать реализующие конкретные классы)
  • Конкретные Builders (классы, которые реализуют интерфейс Builder и создают желаемый конечный продукт)
  • Класс Director (класс, которому предоставляется реализация построителя для использования)

Выполнение

Строитель (Интерфейс) 🧰

Общий интерфейс строителя для домов просто говорит, что строитель должен уметь делать.

Бетонщики 🏠🏰

Эти два строителя могут построить обычный дом или дом с гаражом и бассейном, однако разные строители могут построить конечный продукт по-разному (например, гараж или конюшню).

Директор 👨‍💼

Директору предоставляется строитель и методы для создания простого дома или выполнения дополнительных шагов для создания более сложного дома. Эти несколько методов заменяют перегрузку конструктора для нескольких параметров.