Sobes.tech
Назад к вопросам
Junior — Middle
52

В каких случаях применяется паттерн Abstract Factory в разработке программных систем?

Ответ от нейросети

sobes.tech AI

Паттерн Abstract Factory применяется, когда нужно создавать семейства взаимосвязанных объектов без указания конкретных классов создаваемых объектов. Это полезно, если:

  • Требуется обеспечить независимость кода от конкретных реализаций продуктов.
  • Нужно гарантировать совместимость создаваемых объектов между собой.
  • Необходимо легко менять семейства продуктов, не меняя клиентский код.

Например, в GUI-приложении Abstract Factory может создавать набор виджетов для разных платформ (Windows, macOS, Linux), обеспечивая, что все виджеты из одного семейства выглядят и работают согласованно.

Пример на 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(); }
}

// Клиентский код
GUIFactory factory = getFactoryForCurrentOS();
Button btn = factory.createButton();
Checkbox cb = factory.createCheckbox();