Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: factory, method, creational

Что такое паттерн Factory Method

Вопрос проверяет понимание одного из базовых порождающих паттернов и его назначения.

Короткий ответ

Factory Method — это паттерн, который выносит логику создания объектов в отдельный метод. Вместо прямого вызова конструктора используется фабричный метод. Это позволяет выбирать конкретную реализацию во время выполнения. Паттерн снижает связность и упрощает расширение кода.

Длинный ответ

Factory Method используется, когда создание объекта становится сложным или зависит от условий.

Определение

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

1) Проблема прямого создания объектов

Без фабрики:

  • код зависит от конкретных классов;

  • сложно добавлять новые типы;

  • логика создания размазана по проекту.

Пример проблемы:

if payment_type == "card":
    service = CardPayment()
elif payment_type == "cash":
    service = CashPayment()

2) Пример Factory Method

class PaymentFactory:

    @staticmethod
    def create(payment_type: str):
        if payment_type == "card":
            return CardPayment()
        if payment_type == "cash":
            return CashPayment()
        raise ValueError("Unknown payment type")

Использование:

service = PaymentFactory.create("card")
service.pay(100)

3) Когда применять

Factory Method полезен, когда:

  • тип объекта определяется во время выполнения;

  • ожидается рост числа реализаций;

  • важно изолировать логику создания.

Вывод

Factory Method упрощает создание объектов и снижает зависимость от конкретных классов. Он делает код более расширяемым и поддерживаемым.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    5

Навыки

  • Python

    Python

Ключевые слова

#factory

#method

#creational

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.