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
}