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

Работал ли с паттерном Абстрактная фабрика

Абстрактная фабрика — это порождающий паттерн, который предоставляет интерфейс для создания семейств связанных или зависимых объектов без указания их конкретных классов.

Пример:

python
from abc import ABC, abstractmethod

class Button(ABC):
    @abstractmethod
    def render(self):
        pass

class WindowsButton(Button):
    def render(self):
        return "Windows button rendered"

class MacButton(Button):
def render(self):
return "Mac button rendered"

class GUIFactory(ABC):
@abstractmethod
def create_button(self) -> Button:
pass

class WindowsFactory(GUIFactory):
def create_button(self):
return WindowsButton()

class MacFactory(GUIFactory):
def create_button(self):
return MacButton()

Клиентский код

def client_code(factory: GUIFactory):
button = factory.create_button()
print(button.render())

client_code(WindowsFactory()) # Windows button rendered
client_code(MacFactory()) # Mac button rendered

text

**Плюсы:**  
- Изоляция конкретных классов  
- Упрощение замены семейств продуктов  
- Гарантирует сочетаемость объектов  

**Минусы:**  
- Усложнение кода из-за множества классов  
- Трудно добавить новый тип продукта (нужно менять фабрику)  

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

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

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

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