Назад к вопросам
Junior — Middle
65
Можете объяснить принцип работы и структуру паттерна Abstract Factory?
Ответ от нейросети
sobes.tech AI
Паттерн Abstract Factory предназначен для создания семейств связанных объектов без указания их конкретных классов.
Принцип работы:
- Определяется интерфейс или абстрактный класс фабрики, который объявляет методы для создания различных продуктов.
- Конкретные фабрики реализуют этот интерфейс и создают конкретные продукты, принадлежащие одному семейству.
- Клиент работает с фабрикой через абстрактный интерфейс и не зависит от конкретных классов создаваемых объектов.
Структура:
- AbstractFactory — интерфейс с методами создания продуктов.
- ConcreteFactory — конкретная фабрика, реализующая AbstractFactory.
- AbstractProduct — интерфейс для продуктов.
- ConcreteProduct — конкретные продукты, создаваемые фабрикой.
Пример на 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(); }
}
// Клиент
class Application {
private Button button;
private Checkbox checkbox;
public Application(GUIFactory factory) {
button = factory.createButton();
checkbox = factory.createCheckbox();
}
}
Такой подход упрощает замену семейств продуктов и поддерживает расширяемость.