ФАБРИКА ПАТТЕРН PYTHON

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

Классический фабричный метод использует статический метод для создания объектов. Например:

class Dog: def __init__(self, name): self.name = name def speak(self): return "Woof!" class Cat: def __init__(self, name): self.name = name def speak(self): return "Meow!" def get_pet(pet="dog"): pets = dict(dog=Dog("Hope"), cat=Cat("Peace")) return pets[pet] d = get_pet("dog") print(d.speak()) c = get_pet("cat") print(c.speak())

Абстрактная фабрика предоставляет интерфейс для создания всех релевантных объектов без деталей их реализации. В Python реализация может выглядеть следующим образом:

class Dog: def speak(self): return "Woof!" def __str__(self): return "Dog" class DogFactory: def get_pet(self): return Dog() def get_food(self): return "Dog food" class Cat: def speak(self): return "Meow!" def __str__(self): return "Cat" class CatFactory: def get_pet(self): return Cat() def get_food(self): return "Cat food" class PetStore: def __init__(self, pet_factory=None): self._pet_factory = pet_factory def show_pet(self): pet = self._pet_factory.get_pet() pet_food = self._pet_factory.get_food() print("Our pet is a {}".format(pet)) print("Our pet says hello by {}".format(pet.speak())) print("Its food is {}".format(pet_food)) factory = DogFactory() shop = PetStore(factory) shop.show_pet() factory = CatFactory() shop = PetStore(factory) shop.show_pet()

Таким образом, фабричный метод предоставляет решение проблемы контроля над тем, какие типы объектов создаются, кто их создает и как они связаны между собой.

Абстрактная Фабрика

Паттерн Фабричный Метод

Паттерн Factory Method на Python

Паттерны проектирования на Python : Factory method, Abstract factory

Паттерны проектирования на Python: Паттерн Фабричный метод

Python. Паттерн проектирования программ \

Бинарные опционы 2023 - Торговля с роботом в ТРЕЙДИНГЕ ,ХОРОШО ИЛИ ПЛОХО? Бинарные опционы Стратегия

BLGPG-BD953CDF81F4-24-09-20-01

Новые материалы: