Sobes.tech
Junior — Middle
92

Можете объяснить принцип работы и назначение паттерна Строитель в проектировании программных систем?

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

sobes.tech AI

Паттерн Строитель (Builder) используется для поэтапного создания сложных объектов. Его основная задача — отделить процесс конструирования объекта от его представления, чтобы один и тот же процесс мог создавать разные представления.

Принцип работы:

  • Создаётся объект-строитель, который содержит методы для настройки частей объекта.
  • Клиент вызывает эти методы поочерёдно, задавая параметры.
  • В конце вызывается метод, который возвращает готовый объект.

Это удобно, когда объект имеет много параметров, и конструктор с большим количеством аргументов неудобен или нечитабелен.

Пример на Dart (Flutter):

class Pizza {
  String dough = '';
  String sauce = '';
  String topping = '';

  @override
  String toString() => 'Pizza with $dough dough, $sauce sauce and $topping topping';
}

class PizzaBuilder {
  Pizza _pizza = Pizza();

  PizzaBuilder setDough(String dough) {
    _pizza.dough = dough;
    return this;
  }

  PizzaBuilder setSauce(String sauce) {
    _pizza.sauce = sauce;
    return this;
  }

  PizzaBuilder setTopping(String topping) {
    _pizza.topping = topping;
    return this;
  }

  Pizza build() => _pizza;
}

void main() {
  var pizza = PizzaBuilder()
      .setDough('thin')
      .setSauce('tomato')
      .setTopping('cheese')
      .build();

  print(pizza); // Pizza with thin dough, tomato sauce and cheese topping
}