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