Строитель

Builder

Проблема

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

Примером сложного объекта может служить объект почтового сообщения Email. У этого объекта может быть множество параметров, таких как отправитель, получатель, тема, текст, вложения. Используя паттерн Строитель, можно поэтапно создать объект почтового сообщения с различными параметрами.

Назначение

Строитель (Builder) — это порождающий паттерн проектирования, который позволяет создавать сложные объекты, разбив процесс конструирования сложного объекта на отдельные шаги.

Решаемые задачи

  • Поэтапное создание сложного объекта

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

  • Отделение процесса контроля за созданием объекта от самого процесса создания объекта.

Одна сущность (строитель) определяет шаги конструирования объекта, в то время как другая сущность (директор) управляет последовательностью этих шагов, обеспечивая создание объекта с нужной конфигурацией.

UML диаграмма

UML диаграмма паттерна "Строитель"

Преимущества

  1. Упрощение процесса создания сложных объектов.

  2. Разделение процесса создания объекта и контроля за созданием объекта.

Недостатки

  1. Усложнение кода из-за введения дополнительных иерархий классов.

  2. Избыточность кода для создания простых объектов

Связь с другими паттернами

  1. Паттерн Строитель может использоваться вместе с Фабричным методом для создания сложных объектов. "Фабричный метод" определяет интерфейс для создания взаимосвязанных объектов, а "Строитель" отвечает за создание отдельных частей сложного объекта.

Last updated

Was this helpful?