Паттерн Factory (фабрика) используется для создания объектов без указания конкретного класса создаваемого объекта. В Python это обычно реализуется через функцию или класс с методом, который возвращает экземпляры нужных классов в зависимости от входных параметров.
Каким образом реализовать паттерн Factory для создания объектов?
Паттерн Factory (фабрика) используется для создания объектов без указания конкретного класса создаваемого объекта.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Паттерн 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()) # Выведет: Гав
Таким образом, фабрика инкапсулирует логику создания объектов и позволяет клиентскому коду работать с абстракциями, не завися от конкретных классов.