Easyfactory
Что такое Factory pattern?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
Factory — паттерн, инкапсулирующий создание объектов. Виды: Simple Factory (статический метод), Factory Method (GoF — подклассы решают), Abstract Factory (GoF — семейства объектов).
// Simple Factory
static Shape create(String type) {
return switch (type) {
case "circle" -> new Circle();
case "square" -> new Square();
default -> throw new IllegalArgumentException(type);
};
}
// Factory Method — подкласс решает
abstract class Document {
abstract Page createPage(); // WordDoc → WordPage, PdfDoc → PdfPage
}
// Abstract Factory — семейства
interface GUIFactory {
Button createButton();
TextField createTextField();
} // WinFactory, MacFactoryПримеры в JDK: Calendar.getInstance(), DriverManager.getConnection(). Spring ApplicationContext — factory для beans.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.