Sobes.tech
Back to questions
Junior — Middle
64

Каким образом реализовать паттерн Factory для создания объектов?

Answer from AI

sobes.tech AI

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

Пример реализации фабрики с классами животных:

class Dog:
    def speak(self):
        return "Гав"

class Cat:
    def speak(self):
        return "Мяу"

class AnimalFactory:
    @staticmethod
    def create_animal(animal_type):
        if animal_type == "dog":
            return Dog()
        elif animal_type == "cat":
            return Cat()
        else:
            raise ValueError(f"Неизвестный тип животного: {animal_type}")

# Использование
animal = AnimalFactory.create_animal("dog")
print(animal.speak())  # Выведет: Гав

Таким образом, фабрика инкапсулирует логику создания объектов и позволяет клиентскому коду работать с абстракциями, не завися от конкретных классов.