Junior — Middle
Pouvez-vous expliquer le principe de fonctionnement et l'objectif du patron Builder dans la conception de systèmes logiciels?
sobes.tech IA
Réponse de l'IA
Паттерн Строитель (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
}