Junior — Middle
Abstract Factory naqshining ishlash prinsipi va tuzilmasini tushuntirib berishingiz mumkinmi?
sobes.tech AI
AIdan javob
Паттерн 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();
}
}
Такой подход упрощает замену семейств продуктов и поддерживает расширяемость.