135 подписчиков

[🍃] Паттерн "Фабрика" в Python | Ключевые знания для начинающих

290 прочитали
Паттерн "Фабрика" - популярный паттерн проектирования в объектно-ориентированном программировании.

Паттерн "Фабрика" - популярный паттерн проектирования в объектно-ориентированном программировании. Он используется для создания объектов без необходимости указывать точный класс объекта, который будет создан.

Вместо этого класс Factory отвечает за создание объектов определенного типа на основе некоторых входных данных или условий.'

Вот пример использования паттерна "Фабрика":

Паттерн "Фабрика" - популярный паттерн проектирования в объектно-ориентированном программировании.-2

В этом примере у нас есть базовый класс Enemy и два подкласса, Goblin и Troll. У нас также есть класс EnemyFactory со статическим методом create_enemy, который принимает в качестве аргумента тип врага (enemy_type). На основе enemy_type метод фабрики создает и возвращает экземпляр класса Goblin или Troll.

Воображаемый пример использования фабрики для динамического создания врагов для игры
Воображаемый пример использования фабрики для динамического создания врагов для игры

Полезные детали, о которых стоит помнить:

  • Модель Factory может быть полезна, когда у вас есть сложный процесс создания объекта, который включает в себя множество конфигураций или настроек. Инкапсулируя этот процесс в классе Factory, вы можете сделать свой код более модульным и более простым в сопровождении.
  • Фабрики могут быть реализованы различными способами. В Python вы можете использовать специальный класс Factory, как мы делали в примере, или использовать функцию Factory, которая возвращает новый экземпляр класса. Важно то, что фабрика предоставляет способ абстрагироваться от деталей создания объекта.
  • В некоторых случаях вы можете использовать метод Factory вместо специального класса Factory. Метод Factory - это статический метод, определенный для класса, экземпляры которого вы хотите создать. Это может быть полезно, когда вы хотите создать объекты определенного типа на основе некоторых входных данных или условий, но не хотите создавать отдельный класс Factory (см. пример ниже)
Паттерн "Фабрика" - популярный паттерн проектирования в объектно-ориентированном программировании.-4

В этом примере метод create_vehicle является статическим методом, определенным для класса Vehicle. Этот метод принимает в качестве аргументов имя и vehicle_type и возвращает экземпляр класса Car или Truck, в зависимости от типа автомобиля (vehicle_type).

Паттерн "Фабрика" - популярный паттерн проектирования в объектно-ориентированном программировании.-5

Это создает экземпляр автомобиля car и названием "Toyota", а также экземпляр грузовика truck и названием "Ford".

Обратите внимание, что метод create_vehicle определен как статический метод с помощью декоратора @staticmethod. Это означает, что он может быть вызван непосредственно на классе Vehicle, без необходимости иметь экземпляр класса.

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

🎉✨ Поздравляю с завершением чтения статьи

Если Вам понравилось, можете подписаться, оставить комментарий и поставить лайк.

Также, можете взглянуть на некоторые из моих других публикаций, чтобы найти еще больше отличного контента 🔥:

[🔢] NumPy | Часть 1 - Основы
MB Magazine18 апреля 2023
[🍃] Работа с Файлами в Python | Ключевые знания для начинающих
MB Magazine9 апреля 2023
[🍀] Лучшие Практики Программирования на Python для Начинающих
MB Magazine7 апреля 2023