Sobes.tech
Назад к вопросам
Junior — Middle
61

Можете объяснить принцип работы и основные идеи шаблона Builder?

Компании, где спрашивали
adspector

Ответ от нейросети

sobes.tech AI

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

Основные идеи:

  • Создаётся отдельный класс Builder, который содержит методы для установки параметров.
  • Методы Builder возвращают сам Builder, что позволяет вызывать их цепочкой (fluent interface).
  • В конце вызывается метод build(), который возвращает готовый объект.

Пример на Python:

class Car:
    def __init__(self, color=None, engine=None, seats=None):
        self.color = color
        self.engine = engine
        self.seats = seats

class CarBuilder:
    def __init__(self):
        self.color = None
        self.engine = None
        self.seats = None

    def set_color(self, color):
        self.color = color
        return self

    def set_engine(self, engine):
        self.engine = engine
        return self

    def set_seats(self, seats):
        self.seats = seats
        return self

    def build(self):
        return Car(self.color, self.engine, self.seats)

# Использование:
builder = CarBuilder()
car = builder.set_color('red').set_engine('V8').set_seats(4).build()

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