Back to questions
Junior — Middle
51
В каких случаях применяется паттерн Abstract Factory в разработке программных систем?
Answer from AI
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();