Встречается на собеседованиях • сегодня

Как реализован паттерн Abstract Factory

Паттерн Abstract Factory предоставляет интерфейс для создания семейств взаимосвязанных объектов без указания их конкретных классов.

Пример:

java
// Абстрактная фабрика
interface GUIFactory {
    Button createButton();
    Checkbox createCheckbox();
}

// Конкретные фабрики
class WinFactory implements GUIFactory {
    public Button createButton() { return new WinButton(); }
    public Checkbox createCheckbox() { return new WinCheckbox(); }
}

class MacFactory implements GUIFactory {
public Button createButton() { return new MacButton(); }
public Checkbox createCheckbox() { return new MacCheckbox(); }
}

// Абстрактные продукты
interface Button { void render(); }
interface Checkbox { void check(); }

// Конкретные продукты
class WinButton implements Button { public void render() { /* ... / } }
class MacButton implements Button { public void render() { /
... / } }
class WinCheckbox implements Checkbox { public void check() { /
... / } }
class MacCheckbox implements Checkbox { public void check() { /
... */ } }

// Клиентский код
class Application {
private GUIFactory factory;
public Application(GUIFactory factory) { this.factory = factory; }
public void createUI() {
Button button = factory.createButton();
button.render();
}
}

text
**Используется, когда:**  
- Система должна быть независимой от процесса создания объектов.  
- Требуется создавать семейства связанных объектов.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы