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

В чем разница между паттернами Фабрика и Абстрактная фабрика

Основное различие между паттернами Фабрика (Factory Method) и Абстрактная фабрика (Abstract Factory) заключается в уровне абстракции и решаемых задачах:

Factory Method:

  • Определяет интерфейс для создания одного объекта
  • Позволяет подклассам решать, какой класс инстанцировать
  • Используется, когда у нас есть иерархия классов и нужно создавать объекты одного типа

Пример:

python
class Button:
    pass

class WindowsButton(Button):
pass

class ButtonFactory:
def create_button(self) -> Button:
return Button()

class WindowsButtonFactory(ButtonFactory):
def create_button(self) -> Button:
return WindowsButton()

text

**Abstract Factory**:
- Создает семейства связанных объектов
- Инкапсулирует группу фабрик с общей темой
- Используется, когда нужно создавать набор взаимосвязанных объектов

Пример:
```python
class GUIFactory:
    def create_button(self): pass
    def create_checkbox(self): pass

class WinFactory(GUIFactory):
    def create_button(self): return WinButton()
    def create_checkbox(self): return WinCheckbox()

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

Фабричный метод - это создание одного продукта, абстрактная фабрика - создание семейства продуктов.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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