Что такое Factory
Фабрика (Factory) — это порождающий паттерн проектирования, который предоставляет интерфейс для создания объектов, позволяя подклассам изменять тип создаваемых объектов.
Основная идея — делегировать создание объектов отдельному методу или классу, а не создавать их напрямую через конструктор.
Пример:
from abc import ABC, abstractmethod
class Animal(ABC):
@abstractmethod
def speak(self):
pass
class Dog(Animal):
def speak(self):
return "Woof!"
class Cat(Animal):
def speak(self):
return "Meow!"
class AnimalFactory:
def create_animal(self, animal_type):
if animal_type == "dog":
return Dog()
elif animal_type == "cat":
return Cat()
else:
raise ValueError("Unknown animal type")
factory = AnimalFactory()
animal = factory.create_animal("dog")
print(animal.speak()) # Вывод: Woof!
**Плюсы:**
- Гибкость: можно легко добавлять новые типы объектов.
- Инкапсуляция: логика создания скрыта от клиентского кода.
- Упрощение тестирования: можно подменять фабрики в тестах.
**Минусы:**
- Усложнение кода из-за дополнительных классов.
офферы быстрее!
Следующий вопрос
Это единственный вопрос по вашему фильтру