Sobes.tech
Junior — Middle
82

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

Сұралған компаниялар
adspector

AI-дан жауап

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()

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