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 подскажет развёрнутый ответ в реальном времени.