Встречается на собеседованиях • сегодня
В чем разница между паттернами Builder и Factory
Builder и Factory оба являются порождающими паттернами, но решают разные задачи:
Factory создаёт объекты, скрывая логику инстанцирования. Клиент получает готовый объект через фабричный метод, не зная деталей реализации. Пример:
java
interface Shape {
void draw();
}
class Circle implements Shape { /*...*/ }
class ShapeFactory {
public Shape createShape(String type) {
return switch(type) {
case "CIRCLE" -> new Circle();
default -> throw new IllegalArgumentException();
};
}
}Builder поэтапно конструирует сложные объекты, позволяя создавать разные конфигурации. Особенно полезен при множестве параметров:
java
class Pizza {
private String dough, sauce, topping;
// Builder
static class Builder {
private String dough, sauce, topping;
Builder setDough(String d) { this.dough = d; return this; }
// другие сеттеры...
Pizza build() { return new Pizza(this); }
}
private Pizza(Builder b) { /* инициализация */ }
}Ключевое отличие: Factory возвращает готовый объект сразу, Builder позволяет гибко настраивать объект шаг за шагом. Factory проще, Builder мощнее для сложных объектов.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы