Встречается на собеседованиях • сегодня
Работал ли с паттерном Абстрактная фабрика
Абстрактная фабрика — это порождающий паттерн, который предоставляет интерфейс для создания семейств связанных или зависимых объектов без указания их конкретных классов.
Пример:
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
**Плюсы:**
- Изоляция конкретных классов
- Упрощение замены семейств продуктов
- Гарантирует сочетаемость объектов
**Минусы:**
- Усложнение кода из-за множества классов
- Трудно добавить новый тип продукта (нужно менять фабрику)
Используется, когда система не должна зависеть от способа создания объектов и нужно работать с семействами связанных продуктов.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы