Шаблон Builder — это шаблон создания, используемый в разработке программного обеспечения, когда вы хотите создать сложный объект поэтапно, а не с помощью конструктора, который выполняет все сложные шаги настройки во время создания. Это позволяет избежать конструкторов с полями, которые обычно пусты.
Пример
Представьте, что мы хотим построить дом, мы хотим иметь возможность построить простой дом или дома с бассейном и/или гаражом. Мы могли бы создать конструктор с двумя логическими полями для hasGarage и hasPool. Тогда нам нужно было бы передать ложь для большинства домов.
Когда использовать Builder?
- Когда у вас есть класс с необязательными полями, которые часто остаются нулевыми.
- Когда вам нужно создать сложный объект, состоящий из более простых объектов.
Из чего состоит шаблон Builder?
- Интерфейс Builder (интерфейс, описывающий, что должны иметь возможность создавать реализующие конкретные классы)
- Конкретные Builders (классы, которые реализуют интерфейс Builder и создают желаемый конечный продукт)
- Класс Director (класс, которому предоставляется реализация построителя для использования)
Выполнение
Строитель (Интерфейс) 🧰
Общий интерфейс строителя для домов просто говорит, что строитель должен уметь делать.
Бетонщики 🏠🏰
Эти два строителя могут построить обычный дом или дом с гаражом и бассейном, однако разные строители могут построить конечный продукт по-разному (например, гараж или конюшню).
Директор 👨💼
Директору предоставляется строитель и методы для создания простого дома или выполнения дополнительных шагов для создания более сложного дома. Эти несколько методов заменяют перегрузку конструктора для нескольких параметров.